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,45 @@
library angular2.benchmark.transform.bind_generator.simple;
import 'dart:async';
import 'package:angular2/src/transform/common/options.dart';
import 'package:angular2/src/transform/bind_generator/transformer.dart';
import 'package:barback/barback.dart';
import 'package:code_transformers/benchmarks.dart';
import 'package:unittest/unittest.dart';
Future main() => runBenchmark();
allTests() {
test('Bind Generator Benchmark Runs', runBenchmark);
}
Future runBenchmark() async {
var options = new TransformerOptions(['this_is_ignored.dart']);
var files = {new AssetId('a', 'a.ng_deps.dart'): aContents};
var benchmark =
new TransformerBenchmark([[new BindGenerator(options)]], files);
print('\nRunning bind_generator benchmark...');
var result = await benchmark.measure();
print('Done, took ${result.round()}μs on average.');
}
const aContents = '''
library bar.ng_deps.dart;
import 'bar.dart';
import 'package:angular2/src/core/annotations/annotations.dart';
bool _visited = false;
void initReflector(reflector) {
if (_visited) return;
_visited = true;
reflector
..registerType(ToolTip, {
'factory': () => new ToolTip(),
'parameters': const [],
'annotations': const [
const Decorator(
selector: '[tool-tip]', bind: const {'text': 'tool-tip'})
]
});
}''';