| // 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 dart2js.stress; |
| |
| import 'package:compiler/src/dart2js.dart' as dart2js; |
| import 'dart:io' show Platform; |
| |
| const ITERATIONS_FLAG_PREFIX = "--iterations="; |
| void main(List<String> args) { |
| Stopwatch sw = new Stopwatch(); |
| int count = 0; |
| int maxCount = null; |
| if (args.isNotEmpty && args[0].startsWith(ITERATIONS_FLAG_PREFIX)) { |
| maxCount = int.parse(args[0].substring(ITERATIONS_FLAG_PREFIX.length)); |
| args = args.sublist(1); |
| } |
| if (maxCount == null) { |
| print("Running indefinitely.\n" |
| "Use '$ITERATIONS_FLAG_PREFIX<count>' to set a repetition count" |
| " (as first flag)."); |
| } |
| args = [ |
| "--suppress-warnings", |
| "--suppress-hints", |
| "--libraries-spec=" |
| "${Platform.script.resolve('../../../sdk/lib/libraries.json').toFilePath()}" |
| ]..addAll(args); |
| void iterate() { |
| count++; |
| sw.reset(); |
| sw.start(); |
| dart2js.internalMain(args).then((_) { |
| print("$count: ${sw.elapsedMilliseconds}ms"); |
| }).then((_) { |
| if (maxCount == null || count < maxCount) { |
| iterate(); |
| } |
| }); |
| } |
| |
| iterate(); |
| } |