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)
+ );
}