Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2508)

Unified Diff: frog/leg/scanner/scanner_bench.dart

Issue 9873021: Move frog/leg to lib/compiler/implementation. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « frog/leg/scanner/scanner.dart ('k') | frog/leg/scanner/scanner_implementation.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/leg/scanner/scanner_bench.dart
===================================================================
--- frog/leg/scanner/scanner_bench.dart (revision 5925)
+++ frog/leg/scanner/scanner_bench.dart (working copy)
@@ -1,150 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-#library('scanner_bench');
-#import('scannerlib.dart');
-#import('scanner_implementation.dart');
-#source('source_list.dart');
-
-/**
- * A common superclass for scanner benchmarks.
- */
-class ScannerBench {
- void main(List<String> arguments) {
- for (String argument in arguments) {
- checkExistence(argument);
- }
- tokenizeAll(print, 10, arguments);
- tokenizeAll((x) {}, 1000, arguments);
- tokenizeAll(print, 10, arguments);
- }
-
- void tokenizeAll(void log(String s), int iterations, List<String> arguments) {
- VerboseProgressBar bar = new VerboseProgressBar(iterations);
- bar.begin();
- for (int i = 0; i < iterations; i++) {
- bar.tick();
- Stopwatch timer = new Stopwatch();
- timer.start();
- int charCount = 0;
- for (final String argument in arguments) {
- charCount += tokenizeOne(argument);
- }
- timer.stop();
- bar.recordScore(charCount / timer.elapsedInMs());
- log("Tokenized ${arguments.length} files " +
- "(total size = ${charCount} chars) " +
- "in ${timer.elapsedInMs()}ms");
- }
- bar.end();
- }
-
- int tokenizeOne(String filename) {
- return getBytes(filename, (bytes) {
- Scanner scanner = makeScanner(bytes);
- try {
- printTokens(scanner.tokenize());
- } catch (MalformedInputException e) {
- print("${filename}: ${e}");
- }
- });
- }
-
- void printTokens(Token token) {
- // TODO(ahe): Turn this into a proper test.
- return;
- StringBuffer sb = new StringBuffer();
- for (; token != null; token = token.next) {
- if (token.kind < 127) {
- sb.add(new String.fromCharCodes([token.kind]));
- } else {
- sb.add(token.kind);
- }
- sb.add(":");
- sb.add(token);
- sb.add(" ");
- }
- print(sb.toString());
- }
-
- abstract int getBytes(String filename, void callback(bytes));
- abstract Scanner makeScanner(bytes);
- abstract void checkExistence(String filename);
-}
-
-class ProgressBar {
- static final String hashes = "##############################################";
- static final String spaces = " ";
- static final int GEOMEAN_COUNT = 50;
-
- final String esc;
- final String up;
- final String clear;
- final int total;
- final List<num> scores;
- int ticks = 0;
-
- ProgressBar(int total) : this.escape(total, new String.fromCharCodes([27]));
-
- ProgressBar.escape(this.total, String esc)
- : esc = esc, up = "$esc[1A", clear = "$esc[K", scores = new List<num>();
-
- void begin() {
- if (total > 10) {
- print("[$spaces] 0%");
- print("$up[${hashes.substring(0, ticks * spaces.length ~/ total)}");
- }
- }
-
- void tick() {
- if (total > 10 && ticks % 5 === 0) {
- print("$up$clear[$spaces] ${ticks * 100 ~/ total}% ${score()}");
- print("$up[${hashes.substring(0, ticks * spaces.length ~/ total)}");
- }
- ++ticks;
- }
-
- void end() {
- if (total > 10) {
- print("$up$clear[$hashes] 100% ${score()}");
- }
- }
-
- void recordScore(num score) {
- scores.addLast(score);
- }
-
- int score() {
- num geoMean = 1;
- int count = Math.min(scores.length, GEOMEAN_COUNT);
- for (int i = scores.length - count; i < scores.length; i++) {
- geoMean *= scores[i];
- }
- geoMean = Math.pow(geoMean, 1/Math.max(count, 1));
- return geoMean.round().toInt();
- }
-}
-
-class VerboseProgressBar {
- final int total;
- int ticks = 0;
-
- VerboseProgressBar(int this.total);
-
- void begin() {
- }
-
- void tick() {
- ++ticks;
- }
-
- void end() {
- }
-
- void recordScore(num score) {
- if (total > 10) {
- print("$ticks, $score, ${ticks * 100 ~/ total}%");
- }
- }
-}
« no previous file with comments | « frog/leg/scanner/scanner.dart ('k') | frog/leg/scanner/scanner_implementation.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698