summaryrefslogtreecommitdiff
path: root/benchmark/module
diff options
context:
space:
mode:
authorAndreas Madsen <amwebdk@gmail.com>2016-01-29 21:40:04 +0100
committerRod Vagg <rod@vagg.org>2016-02-26 20:28:45 +1100
commitd9079ab8013ba2c2a4704a2cca6fe3fcc0a1ecdd (patch)
treeca1875d33a81d5679e96e9be4afce1d2083bc6ac /benchmark/module
parent1d7c37018f619ebd4c7d538a4b65461cc447728d (diff)
downloadandroid-node-v8-d9079ab8013ba2c2a4704a2cca6fe3fcc0a1ecdd.tar.gz
android-node-v8-d9079ab8013ba2c2a4704a2cca6fe3fcc0a1ecdd.tar.bz2
android-node-v8-d9079ab8013ba2c2a4704a2cca6fe3fcc0a1ecdd.zip
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.js53
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
+ }
+}