diff options
author | Andreas Madsen <amwebdk@gmail.com> | 2016-01-29 21:40:04 +0100 |
---|---|---|
committer | Rod Vagg <rod@vagg.org> | 2016-02-26 20:28:45 +1100 |
commit | d9079ab8013ba2c2a4704a2cca6fe3fcc0a1ecdd (patch) | |
tree | ca1875d33a81d5679e96e9be4afce1d2083bc6ac /benchmark/module | |
parent | 1d7c37018f619ebd4c7d538a4b65461cc447728d (diff) | |
download | node-new-d9079ab8013ba2c2a4704a2cca6fe3fcc0a1ecdd.tar.gz |
benchmark: move misc to categorized directories
PR-URL: https://github.com/nodejs/node/pull/5177
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Diffstat (limited to 'benchmark/module')
-rw-r--r-- | benchmark/module/module-loader.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/benchmark/module/module-loader.js b/benchmark/module/module-loader.js new file mode 100644 index 0000000000..17948604c7 --- /dev/null +++ b/benchmark/module/module-loader.js @@ -0,0 +1,53 @@ +'use strict'; +var fs = require('fs'); +var path = require('path'); +var common = require('../common.js'); +var packageJson = '{"main": "index.js"}'; + +var tmpDirectory = path.join(__dirname, '..', 'tmp'); +var benchmarkDirectory = path.join(tmpDirectory, 'nodejs-benchmark-module'); + +var bench = common.createBenchmark(main, { + thousands: [50] +}); + +function main(conf) { + rmrf(tmpDirectory); + try { fs.mkdirSync(tmpDirectory); } catch (e) {} + try { fs.mkdirSync(benchmarkDirectory); } catch (e) {} + + var n = +conf.thousands * 1e3; + for (var i = 0; i <= n; i++) { + fs.mkdirSync(benchmarkDirectory + i); + fs.writeFileSync(benchmarkDirectory + i + '/package.json', '{"main": "index.js"}'); + fs.writeFileSync(benchmarkDirectory + i + '/index.js', 'module.exports = "";'); + } + + measure(n); +} + +function measure(n) { + bench.start(); + for (var i = 0; i <= n; i++) { + require(benchmarkDirectory + i); + } + bench.end(n / 1e3); +} + +function rmrf(location) { + try { + var things = fs.readdirSync(location); + things.forEach(function(thing) { + var cur = path.join(location, thing), + isDirectory = fs.statSync(cur).isDirectory(); + if (isDirectory) { + rmrf(cur); + return; + } + fs.unlinkSync(cur); + }); + fs.rmdirSync(location); + } catch (err) { + // Ignore error + } +} |