Index: mojo/public/dart/third_party/analyzer/lib/src/util/utilities_timing.dart |
diff --git a/mojo/public/dart/third_party/analyzer/lib/src/util/utilities_timing.dart b/mojo/public/dart/third_party/analyzer/lib/src/util/utilities_timing.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7b8e122e2a97fdc46b4927607fa91f2f28eadd71 |
--- /dev/null |
+++ b/mojo/public/dart/third_party/analyzer/lib/src/util/utilities_timing.dart |
@@ -0,0 +1,39 @@ |
+// Copyright (c) 2014, 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 engine.utilities.timing; |
+ |
+/** |
+ * A `CountedStopwatch` is a [Stopwatch] that counts the number of times the |
+ * stop method has been invoked. |
+ */ |
+class CountedStopwatch extends Stopwatch { |
+ /** |
+ * The number of times the [stop] method has been invoked. |
+ */ |
+ int stopCount = 0; |
+ |
+ /** |
+ * Initialize a newly created stopwatch. |
+ */ |
+ CountedStopwatch(); |
+ |
+ /** |
+ * The average number of millisecond that were recorded each time the [start] |
+ * and [stop] methods were invoked. |
+ */ |
+ int get averageMilliseconds => elapsedMilliseconds ~/ stopCount; |
+ |
+ @override |
+ void reset() { |
+ super.reset(); |
+ stopCount = 0; |
+ } |
+ |
+ @override |
+ void stop() { |
+ super.stop(); |
+ stopCount++; |
+ } |
+} |