aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/systemjs/bench/normalize-perf.js
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/systemjs/bench/normalize-perf.js')
-rw-r--r--thirdparty/systemjs/bench/normalize-perf.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/thirdparty/systemjs/bench/normalize-perf.js b/thirdparty/systemjs/bench/normalize-perf.js
new file mode 100644
index 000000000..6749382a2
--- /dev/null
+++ b/thirdparty/systemjs/bench/normalize-perf.js
@@ -0,0 +1,67 @@
+var systemjs = require('../index.js');
+
+var num = 5;
+
+var startTime, endTime;
+
+startTime = Date.now();
+require('./config-example/config.js');
+endTime = Date.now();
+console.log('Configured in ' + (endTime - startTime) + 'ms');
+
+require('./config-example/pkg-configs.js');
+
+var normalizeData = require('./config-example/normalize-data.js');
+
+// decanonicalize the parentNames (we're not measuring decanonicalize)
+var normalizationCnt = 0;
+normalizeData.forEach(function(item) {
+ normalizationCnt += item[1].length;
+ item[0] = System.decanonicalize(item[0]);
+});
+
+// simulated System.register normalization test
+// timed normalize of 'x', ['./dep'] cases
+function test() {
+ return Promise.all(normalizeData.map(function(item) {
+ var parentName = item[0];
+ var deps = item[1];
+ return Promise.all(deps.map(function(dep) {
+ return System.normalize(dep, parentName);
+ }));
+ }));
+}
+
+return Promise.resolve()
+.then(function() {
+ starTime = Date.now();
+ return test()
+ .then(function() {
+ endTime = Date.now();
+ console.log(normalizationCnt + ' first run normalizations in ' + (endTime - startTime) + 'ms');
+ console.log((endTime - startTime) / normalizationCnt + 'ms per normalization');
+ });
+})
+.then(function() {
+ startTime = Date.now();
+ var testPromise = Promise.resolve();
+ for (var i = 0; i < num; i++)
+ testPromise = testPromise.then(test);
+ return testPromise
+ .then(function() {
+ endTime = Date.now();
+
+ var time = (endTime - startTime) / num;
+
+ console.log(normalizationCnt + ' subsequent normalizations in ' + time + 'ms');
+ console.log(time / normalizationCnt + 'ms per normalization');
+
+ /* System.perfSummary(function(evt) {
+ return evt.name.match(/^normalize\:/);
+ }); */
+ })
+ .catch(function(e) {
+ console.error(e.stack || e);
+ });
+
+}); \ No newline at end of file