Skip to content

Commit

Permalink
benchmark: add new module loading benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
BridgeAR committed Jan 6, 2019
1 parent f6a1d88 commit bbfe4a3
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 0 deletions.
19 changes: 19 additions & 0 deletions benchmark/module/load-native.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
'use strict';
const common = require('../common.js');

const bench = common.createBenchmark(main, {
path: ['vm', 'util'],
n: [1000],
useCache: ['true', 'false']
});

function main({ n, path, useCache }) {
if (useCache)
require(path);

bench.start();
for (var i = 0; i < n; i++) {
require(path);
}
bench.end(n);
}
51 changes: 51 additions & 0 deletions benchmark/module/module-loader-deep.js
Original file line number Diff line number Diff line change
@@ -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);
}

0 comments on commit bbfe4a3

Please sign in to comment.