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

Unified Diff: packages/observe/benchmark/path_benchmark.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
Index: packages/observe/benchmark/path_benchmark.dart
diff --git a/packages/observe/benchmark/path_benchmark.dart b/packages/observe/benchmark/path_benchmark.dart
new file mode 100644
index 0000000000000000000000000000000000000000..578d0968b8a200a9563533c8584071821a35eb3f
--- /dev/null
+++ b/packages/observe/benchmark/path_benchmark.dart
@@ -0,0 +1,42 @@
+// 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 observe.test.benchmark.path_benchmark;
+
+import 'package:observe/observe.dart';
+import 'observation_benchmark_base.dart';
+import 'test_path_observable.dart';
+
+class PathBenchmark extends ObservationBenchmarkBase {
+ final PropertyPath path = new PropertyPath('foo.bar.baz');
+
+ PathBenchmark(int objectCount, int mutationCount, String config) : super(
+ 'PathBenchmark:$objectCount:$mutationCount:$config', objectCount,
+ mutationCount, config);
+
+ @override
+ int mutateObject(TestPathObservable obj) {
+ switch (config) {
+ case 'leaf':
+ obj.foo.bar.baz += 1;
+ // Make sure [obj.foo.bar] delivers its changes synchronously. The base
+ // class already handles this for [obj].
+ obj.foo.bar.deliverChanges();
+ return 1;
+
+ case 'root':
+ obj.foo = new Foo(obj.foo.bar.baz + 1);
+ return 1;
+
+ default:
+ throw new ArgumentError('Invalid config for PathBenchmark: $config');
+ }
+ }
+
+ @override
+ TestPathObservable newObject() => new TestPathObservable(1);
+
+ @override
+ PathObserver newObserver(TestPathObservable obj) =>
+ new PathObserver(obj, path)..open((_) => mutations--);
+}
« no previous file with comments | « packages/observe/benchmark/observation_benchmark_base.dart ('k') | packages/observe/benchmark/setup_object_benchmark.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698