| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/foundation.dart'; |
| |
| import '../common.dart'; |
| |
| const int _kNumIterations = 10000; |
| |
| void main() { |
| assert(false, |
| "Don't run benchmarks in debug mode! Use 'flutter run --release'."); |
| final BenchmarkResultPrinter printer = BenchmarkResultPrinter(); |
| |
| final Stopwatch watch = Stopwatch(); |
| watch.start(); |
| for (int i = 0; i < _kNumIterations; i += 1) { |
| FlutterTimeline.startSync('foo'); |
| FlutterTimeline.finishSync(); |
| } |
| watch.stop(); |
| |
| printer.addResult( |
| description: 'timeline events without arguments', |
| value: watch.elapsedMicroseconds.toDouble() / _kNumIterations, |
| unit: 'us per iteration', |
| name: 'timeline_without_arguments', |
| ); |
| |
| watch.reset(); |
| watch.start(); |
| for (int i = 0; i < _kNumIterations; i += 1) { |
| FlutterTimeline.startSync('foo', arguments: <String, dynamic>{ |
| 'int': 1234, |
| 'double': 0.3, |
| 'list': <int>[1, 2, 3, 4], |
| 'map': <String, dynamic>{'map': true}, |
| 'bool': false, |
| }); |
| FlutterTimeline.finishSync(); |
| } |
| watch.stop(); |
| |
| printer.addResult( |
| description: 'timeline events with arguments', |
| value: watch.elapsedMicroseconds.toDouble() / _kNumIterations, |
| unit: 'us per iteration', |
| name: 'timeline_with_arguments', |
| ); |
| |
| printer.printToStdout(); |
| } |