Tobias Bosch 854b5b7da8 feat(benchmark): add static_tree benchmark
Static binary component tree of depth 10, i.e. 1024 components.

Current numbers for `pureScriptTime` are:

JavaScript:

Baseline: 27.10+-9%
Ng2: 26.84+-8%
Ng1: 55.30+-14%

Dart:

Baseline: 30.13+-4%
Ng2: 45.94+-3%
Ng1: 128.88+-10%

I.e. in JS we are same speed as baseline right now!

Some background: We had a recent change in the compiler that merges components into their parents already during compilation (#2529). This made Ng2 2x faster in this benchmark (before the Ng2 JS time was 49.59+-14%ms).

Closes #3196
2015-07-22 10:58:50 -07:00

55 lines
1.6 KiB
TypeScript

import {runClickBenchmark, verifyNoBrowserErrors} from 'angular2/src/test_lib/perf_util';
describe('ng2 static tree benchmark', function() {
var URL = 'benchmarks/src/static_tree/tree_benchmark.html';
afterEach(verifyNoBrowserErrors);
it('should log the ng stats with viewcache', function(done) {
runClickBenchmark({
url: URL,
buttons: ['#ng2DestroyDom', '#ng2CreateDom'],
id: 'ng2.static.tree.create.viewcache',
params: [{name: 'viewcache', value: 'true'}]
}).then(done, done.fail);
});
it('should log the ng stats without viewcache', function(done) {
runClickBenchmark({
url: URL,
buttons: ['#ng2DestroyDom', '#ng2CreateDom'],
id: 'ng2.static.tree.create.plain',
params: [{name: 'viewcache', value: 'false'}]
}).then(done, done.fail);
});
it('should log the ng stats (update)', function(done) {
runClickBenchmark({
url: URL,
buttons: ['#ng2CreateDom'],
id: 'ng2.static.tree.update',
params: [{name: 'viewcache', value: 'true'}]
}).then(done, done.fail);
});
it('should log the baseline stats', function(done) {
runClickBenchmark({
url: URL,
buttons: ['#baselineDestroyDom', '#baselineCreateDom'],
id: 'baseline.tree.create',
params: [{name: 'depth', value: 9, scale: 'log2'}]
}).then(done, done.fail);
});
it('should log the baseline stats (update)', function(done) {
runClickBenchmark({
url: URL,
buttons: ['#baselineCreateDom'],
id: 'baseline.tree.update',
params: [{name: 'depth', value: 9, scale: 'log2'}]
}).then(done, done.fail);
});
});