summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2019-01-02 13:54:51 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2019-04-04 13:03:25 +0200
commita8b69d453f9b7f62cfe54cd9aa8373b871006d3f (patch)
tree398b3f9b87a7feb445051f21dc4dfeb55379b929 /benchmark
parent3b044962c48fe313905877a96b5d0894a5404f6f (diff)
downloadandroid-node-v8-a8b69d453f9b7f62cfe54cd9aa8373b871006d3f.tar.gz
android-node-v8-a8b69d453f9b7f62cfe54cd9aa8373b871006d3f.tar.bz2
android-node-v8-a8b69d453f9b7f62cfe54cd9aa8373b871006d3f.zip
benchmark: add new module loading benchmarks
PR-URL: https://github.com/nodejs/node/pull/26970 Refs: https://github.com/nodejs/node/pull/25362 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/module/module-loader-deep.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/benchmark/module/module-loader-deep.js b/benchmark/module/module-loader-deep.js
new file mode 100644
index 0000000000..f686b8df47
--- /dev/null
+++ b/benchmark/module/module-loader-deep.js
@@ -0,0 +1,51 @@
+'use strict';
+const fs = require('fs');
+const path = require('path');
+const common = require('../common.js');
+
+const tmpdir = require('../../test/common/tmpdir');
+const benchmarkDirectory = path.join(tmpdir.path, 'nodejs-benchmark-module');
+
+const bench = common.createBenchmark(main, {
+ ext: ['', '.js'],
+ files: [1e3],
+ cache: ['true', 'false']
+});
+
+function main({ ext, cache, files }) {
+ tmpdir.refresh();
+ fs.mkdirSync(benchmarkDirectory);
+ fs.writeFileSync(
+ `${benchmarkDirectory}/a.js`,
+ 'module.exports = {};'
+ );
+ for (var i = 0; i <= files; i++) {
+ fs.mkdirSync(`${benchmarkDirectory}/${i}`);
+ fs.writeFileSync(
+ `${benchmarkDirectory}/${i}/package.json`,
+ '{"main": "index.js"}'
+ );
+ fs.writeFileSync(
+ `${benchmarkDirectory}/${i}/index.js`,
+ `require('../a${ext}');`
+ );
+ }
+
+ measureDir(cache === 'true', files);
+
+ tmpdir.refresh();
+}
+
+function measureDir(cache, files) {
+ var i;
+ if (cache) {
+ for (i = 0; i <= files; i++) {
+ require(`${benchmarkDirectory}/${i}`);
+ }
+ }
+ bench.start();
+ for (i = 0; i <= files; i++) {
+ require(`${benchmarkDirectory}/${i}`);
+ }
+ bench.end(files);
+}