| '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 (let 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) { |
| if (cache) { |
| for (let i = 0; i <= files; i++) { |
| require(`${benchmarkDirectory}/${i}`); |
| } |
| } |
| bench.start(); |
| for (let i = 0; i <= files; i++) { |
| require(`${benchmarkDirectory}/${i}`); |
| } |
| bench.end(files); |
| } |