mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 00:20:08 +01:00
PR-URL: https://github.com/nodejs/node/pull/59396 Refs: https://chromium-review.googlesource.com/c/v8/v8/+/6804466 Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
38 lines
959 B
JavaScript
38 lines
959 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const fs = require('fs');
|
|
const tmpdir = require('../../test/common/tmpdir');
|
|
const assert = require('assert');
|
|
const { pathToFileURL } = require('url');
|
|
const bench = common.createBenchmark(main, {
|
|
count: [1, 100],
|
|
n: [1000],
|
|
});
|
|
|
|
function prepare(count) {
|
|
tmpdir.refresh();
|
|
const dir = tmpdir.resolve('modules');
|
|
fs.mkdirSync(dir, { recursive: true });
|
|
let modSource = '';
|
|
for (let i = 0; i < count; ++i) {
|
|
modSource += `export const value${i} = 1;\n`;
|
|
}
|
|
const script = tmpdir.resolve('mod.js');
|
|
fs.writeFileSync(script, modSource, 'utf8');
|
|
return script;
|
|
}
|
|
|
|
async function main({ n, count }) {
|
|
const script = prepare(count);
|
|
const url = pathToFileURL(script).href;
|
|
let result = 0;
|
|
bench.start();
|
|
for (let i = 0; i < n; i++) {
|
|
const mod = await import(`${url}?t=${i}`);
|
|
result += mod[`value${count - 1}`];
|
|
}
|
|
bench.end(n);
|
|
assert.strictEqual(result, n);
|
|
}
|