From d9079ab8013ba2c2a4704a2cca6fe3fcc0a1ecdd Mon Sep 17 00:00:00 2001 From: Andreas Madsen Date: Fri, 29 Jan 2016 21:40:04 +0100 Subject: benchmark: move misc to categorized directories PR-URL: https://github.com/nodejs/node/pull/5177 Reviewed-By: James M Snell Reviewed-By: Rod Vagg --- benchmark/module/module-loader.js | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 benchmark/module/module-loader.js (limited to 'benchmark/module') 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 + } +} -- cgit v1.2.1