feat(benchmarks): Add basic dart transformer benchmarks.

Adds simple benchmarks for various transformation phases, as well as hello_world.
Does not integrate these into any benchmark frameworks yet.
This commit is contained in:
Jacob MacDonald
2015-03-19 15:47:10 -07:00
parent 457c15cd6c
commit 1864f60afb
9 changed files with 408 additions and 1 deletions
@@ -0,0 +1,35 @@
library angular2.benchmark.transform.directive_processor.simple;
import 'dart:async';
import 'package:angular2/src/transform/common/options.dart';
import 'package:angular2/src/transform/directive_processor/transformer.dart';
import 'package:barback/barback.dart';
import 'package:code_transformers/benchmarks.dart';
import 'package:unittest/unittest.dart';
Future main() => runBenchmark();
allTests() {
test('Directive Processor Benchmark Runs', runBenchmark);
}
Future runBenchmark() async {
var options = new TransformerOptions(['this_is_ignored.dart']);
var files = {new AssetId('a', 'a.dart'): aContents,};
var benchmark =
new TransformerBenchmark([[new DirectiveProcessor(options)]], files);
print('\nRunning directive_processor benchmark...');
var result = await benchmark.measure();
print('Done, took ${result.round()}μs on average.');
}
const aContents = '''
library dinner.soup;
import 'package:angular2/src/core/annotations/annotations.dart';
@Component(selector: '[soup]')
class SoupComponent {
SoupComponent(@Tasty String description, @Inject(Salt) salt);
}
''';