| Index: pkg/kernel/test/check_bench.dart
|
| diff --git a/pkg/kernel/test/check_bench.dart b/pkg/kernel/test/check_bench.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5c317592933d6ec87a2307fb629e75161aabf31c
|
| --- /dev/null
|
| +++ b/pkg/kernel/test/check_bench.dart
|
| @@ -0,0 +1,35 @@
|
| +// Copyright (c) 2016, 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.
|
| +
|
| +import 'dart:io';
|
| +import 'package:kernel/checks.dart';
|
| +import 'package:kernel/kernel.dart';
|
| +
|
| +final String usage = '''
|
| +Usage: check_bench FILE.dill
|
| +
|
| +Measures the time it takes to run sanity checks on the given program.
|
| +''';
|
| +
|
| +main(List<String> args) {
|
| + if (args.length != 1) {
|
| + print(usage);
|
| + exit(1);
|
| + }
|
| + var program = loadProgramFromBinary(args[0]);
|
| + var watch = new Stopwatch()..start();
|
| + runSanityChecks(program);
|
| + print('Cold: ${watch.elapsedMilliseconds} ms');
|
| + const int warmUpTrials = 20;
|
| + for (int i = 0; i < warmUpTrials; ++i) {
|
| + runSanityChecks(program);
|
| + }
|
| + watch.reset();
|
| + const int numberOfTrials = 100;
|
| + for (int i = 0; i < numberOfTrials; ++i) {
|
| + runSanityChecks(program);
|
| + }
|
| + double millisecondsPerRun = watch.elapsedMilliseconds / numberOfTrials;
|
| + print('Hot: $millisecondsPerRun ms');
|
| +}
|
|
|