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

Unified Diff: packages/polymer_expressions/benchmark/eval.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 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 | « packages/polymer_expressions/benchmark/all.dart ('k') | packages/polymer_expressions/benchmark/parse.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/polymer_expressions/benchmark/eval.dart
diff --git a/packages/polymer_expressions/benchmark/eval.dart b/packages/polymer_expressions/benchmark/eval.dart
new file mode 100644
index 0000000000000000000000000000000000000000..7bc0f562a3f338aa232910234dc2e209d5a0bfd9
--- /dev/null
+++ b/packages/polymer_expressions/benchmark/eval.dart
@@ -0,0 +1,59 @@
+// Copyright (c) 2013, 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 polymer_expressions.benchmark.eval;
+
+import 'package:benchmark_harness/benchmark_harness.dart';
+import 'package:polymer_expressions/parser.dart' show parse;
+import 'package:polymer_expressions/eval.dart' show eval, Scope;
+
+class Foo {
+ final Bar bar;
+ Foo(this.bar);
+}
+
+class Bar {
+ String baz;
+ Bar(this.baz);
+}
+
+class EvalBenchmark extends BenchmarkBase {
+ final expr;
+ final scope;
+
+ EvalBenchmark(String name, String expr, {Object model, Map variables})
+ : expr = parse(expr),
+ scope = new Scope(model: model, variables: variables),
+ super('$name: $expr ');
+
+ run() {
+ var value = eval(expr, scope);
+ }
+
+}
+
+double total = 0.0;
+
+benchmark(String name, String expr, {Object model, Map variables}) {
+ var score = new EvalBenchmark(name, expr, model: model, variables: variables)
+ .measure();
+ print("$name $expr: $score us");
+ total += score;
+}
+
+main() {
+
+ benchmark('Constant', '1');
+ benchmark('Top-level Name', 'foo',
+ variables: {'foo': new Foo(new Bar('hello'))});
+ benchmark('Model field', 'bar',
+ model: new Foo(new Bar('hello')));
+ benchmark('Path', 'foo.bar.baz',
+ variables: {'foo': new Foo(new Bar('hello'))});
+ benchmark('Map', 'm["foo"]',
+ variables: {'m': {'foo': 1}});
+ benchmark('Equality', '"abc" == "123"');
+ print('total: $total us');
+
+}
« no previous file with comments | « packages/polymer_expressions/benchmark/all.dart ('k') | packages/polymer_expressions/benchmark/parse.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698