From 9af485a584e47fd503ed5c62b9f6482574715f1e Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 10 Oct 2016 03:50:11 +0200 Subject: Squashed 'thirdparty/systemjs/' content from commit 5ed69b6 git-subtree-dir: thirdparty/systemjs git-subtree-split: 5ed69b6344e8fc1cd43bf758350b2236f57e1499 --- bench/normalize-perf.js | 67 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 bench/normalize-perf.js (limited to 'bench/normalize-perf.js') diff --git a/bench/normalize-perf.js b/bench/normalize-perf.js new file mode 100644 index 000000000..6749382a2 --- /dev/null +++ b/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 -- cgit v1.2.3