X Tutup
Skip to content

Commit c05bad3

Browse files
committed
perf(benchmark): measure Injector init from resolved bindings
1 parent 4a961f4 commit c05bad3

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

modules/benchmarks/e2e_test/di_perf.es6

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,21 @@ describe('ng2 di benchmark', function () {
8080
}).then(done, done.fail);
8181
});
8282

83+
/**
84+
* Same as 'createVariety' benchmark but operates on fully resolved bindings.
85+
*/
86+
it('should log the stats for createVarietyResolved', function(done) {
87+
perfUtil.runClickBenchmark({
88+
url: URL,
89+
buttons: ['#createVarietyResolved'],
90+
id: 'ng2.di.createVarietyResolved',
91+
params: [{
92+
name: 'iterations', value: 10000, scale: 'linear'
93+
}],
94+
microMetrics: {
95+
'injectAvg': 'avg time for createVarietyResolved (in ms)'
96+
}
97+
}).then(done, done.fail);
98+
});
99+
83100
});

modules/benchmarks/src/di/di_benchmark.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ <h2>Actions</h2>
1717
<button id="getChild">getChild</button>
1818
<button id="instantiate">instantiate</button>
1919
<button id="createVariety">createVariety</button>
20+
<button id="createVarietyResolved">createVarietyResolved</button>
2021
</div>
2122

2223
$SCRIPTS$

modules/benchmarks/src/di/di_benchmark.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ export function main() {
3434
bind(F).toValue(6)
3535
];
3636

37+
var variousBindingsResolved = Injector.resolve(variousBindings);
38+
3739
function getByToken() {
3840
for (var i = 0; i < iterations; ++i) {
3941
injector.get(D);
@@ -66,7 +68,16 @@ export function main() {
6668
*/
6769
function createVariety() {
6870
for (var i = 0; i < iterations; ++i) {
69-
new Injector(variousBindings);
71+
Injector.resolveAndCreate(variousBindings);
72+
}
73+
}
74+
75+
/**
76+
* Same as [createVariety] but resolves bindings ahead of time.
77+
*/
78+
function createVarietyResolved() {
79+
for (var i = 0; i < iterations; ++i) {
80+
Injector.fromResolvedBindings(variousBindingsResolved);
7081
}
7182
}
7283

@@ -90,6 +101,10 @@ export function main() {
90101
'#createVariety',
91102
() => microBenchmark('injectAvg', iterations, createVariety)
92103
);
104+
bindAction(
105+
'#createVarietyResolved',
106+
() => microBenchmark('injectAvg', iterations, createVarietyResolved)
107+
);
93108
}
94109

95110

0 commit comments

Comments
 (0)
X Tutup