Added a microbenchmark for Timeline events. (#98763)
This commit is contained in:
parent
79d435d018
commit
a7790d8e3a
@ -0,0 +1,53 @@
|
||||
// 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 'dart:developer';
|
||||
|
||||
import '../common.dart';
|
||||
|
||||
const int _kNumIterations = 10000;
|
||||
|
||||
void main() {
|
||||
assert(false,
|
||||
"Don't run benchmarks in checked mode! Use 'flutter run --release'.");
|
||||
final BenchmarkResultPrinter printer = BenchmarkResultPrinter();
|
||||
|
||||
final Stopwatch watch = Stopwatch();
|
||||
watch.start();
|
||||
for (int i = 0; i < _kNumIterations; i += 1) {
|
||||
Timeline.startSync('foo');
|
||||
Timeline.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) {
|
||||
Timeline.startSync('foo', arguments: <String, dynamic>{
|
||||
'int': 1234,
|
||||
'double': 0.3,
|
||||
'list': <int>[1, 2, 3, 4],
|
||||
'map': <String, dynamic>{'map': true},
|
||||
'bool': false,
|
||||
});
|
||||
Timeline.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();
|
||||
}
|
@ -60,6 +60,7 @@ TaskFunction createMicrobenchmarkTask() {
|
||||
...await _runMicrobench('lib/language/sync_star_semantics_bench.dart'),
|
||||
...await _runMicrobench('lib/foundation/all_elements_bench.dart'),
|
||||
...await _runMicrobench('lib/foundation/change_notifier_bench.dart'),
|
||||
...await _runMicrobench('lib/foundation/timeline_bench.dart'),
|
||||
};
|
||||
|
||||
return TaskResult.success(allResults,
|
||||
|
Loading…
x
Reference in New Issue
Block a user