diff --git a/modules/benchmarks/e2e_test/di_perf.es6 b/modules/benchmarks/e2e_test/di_perf.es6 index 04f14522ba..005b9329a9 100644 --- a/modules/benchmarks/e2e_test/di_perf.es6 +++ b/modules/benchmarks/e2e_test/di_perf.es6 @@ -80,4 +80,21 @@ describe('ng2 di benchmark', function () { }).then(done, done.fail); }); + /** + * Same as 'createVariety' benchmark but operates on fully resolved bindings. + */ + it('should log the stats for createVarietyResolved', function(done) { + perfUtil.runClickBenchmark({ + url: URL, + buttons: ['#createVarietyResolved'], + id: 'ng2.di.createVarietyResolved', + params: [{ + name: 'iterations', value: 10000, scale: 'linear' + }], + microMetrics: { + 'injectAvg': 'avg time for createVarietyResolved (in ms)' + } + }).then(done, done.fail); + }); + }); diff --git a/modules/benchmarks/src/di/di_benchmark.html b/modules/benchmarks/src/di/di_benchmark.html index 07fb0982b4..66b7b49fb0 100644 --- a/modules/benchmarks/src/di/di_benchmark.html +++ b/modules/benchmarks/src/di/di_benchmark.html @@ -17,6 +17,7 @@ + $SCRIPTS$ diff --git a/modules/benchmarks/src/di/di_benchmark.js b/modules/benchmarks/src/di/di_benchmark.js index 28038ea5ac..41d9738cec 100644 --- a/modules/benchmarks/src/di/di_benchmark.js +++ b/modules/benchmarks/src/di/di_benchmark.js @@ -34,6 +34,8 @@ export function main() { bind(F).toValue(6) ]; + var variousBindingsResolved = Injector.resolve(variousBindings); + function getByToken() { for (var i = 0; i < iterations; ++i) { injector.get(D); @@ -66,7 +68,16 @@ export function main() { */ function createVariety() { for (var i = 0; i < iterations; ++i) { - new Injector(variousBindings); + Injector.resolveAndCreate(variousBindings); + } + } + + /** + * Same as [createVariety] but resolves bindings ahead of time. + */ + function createVarietyResolved() { + for (var i = 0; i < iterations; ++i) { + Injector.fromResolvedBindings(variousBindingsResolved); } } @@ -90,6 +101,10 @@ export function main() { '#createVariety', () => microBenchmark('injectAvg', iterations, createVariety) ); + bindAction( + '#createVarietyResolved', + () => microBenchmark('injectAvg', iterations, createVarietyResolved) + ); }