Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d5158a0

Browse filesBrowse files
joyeecheungaduh95
authored andcommitted
benchmark: focus on import.meta intialization in import-meta benchmark
Instead of measuring the performance of the entire module initialization, focus only on the import.meta initialization. PR-URL: #60603 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
1 parent 815edb0 commit d5158a0
Copy full SHA for d5158a0

File tree

Expand file treeCollapse file tree

5 files changed

+32
-16
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

5 files changed

+32
-16
lines changed
Open diff view settings
Collapse file

‎benchmark/esm/import-meta.js‎

Copy file name to clipboardExpand all lines: benchmark/esm/import-meta.js
+28-12Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,44 @@ const bench = common.createBenchmark(main, {
1010
'dirname-and-filename',
1111
'dirname',
1212
'filename',
13+
'url',
1314
],
1415
});
1516

16-
const fixtureDir = path.resolve(__filename, '../../fixtures');
17-
const fixtureDirURL = pathToFileURL(fixtureDir);
18-
async function load(array, n, valuesToRead) {
17+
async function load(n, fixtureFileURL) {
18+
const array = [];
1919
for (let i = 0; i < n; i++) {
20-
array[i] = await import(`${fixtureDirURL}/import-meta-${valuesToRead}.mjs?i=${i}`);
20+
array[i] = await import(`${fixtureFileURL}?i=${i}`);
2121
}
2222
return array;
2323
}
2424

2525
function main({ n, valuesToRead }) {
26-
const array = [];
27-
for (let i = 0; i < n; ++i) {
28-
array.push({ dirname: '', filename: '', i: 0 });
29-
}
26+
const fixtureDir = path.resolve(__filename, '../../fixtures');
27+
const fixtureFile = path.join(fixtureDir, `import-meta-${valuesToRead}.mjs`);
28+
const fixtureFileURL = pathToFileURL(fixtureFile);
3029

31-
bench.start();
32-
load(array, n, valuesToRead).then((arr) => {
30+
load(n, fixtureFileURL).then((array) => {
31+
const results = new Array(n);
32+
bench.start();
33+
for (let i = 0; i < n; i++) {
34+
results[i] = array[i].default();
35+
}
3336
bench.end(n);
34-
if (valuesToRead.includes('dirname')) assert.strictEqual(arr[n - 1].dirname, fixtureDir);
35-
if (valuesToRead.includes('filename')) assert.strictEqual(arr[n - 1].filename, path.join(fixtureDir, `import-meta-${valuesToRead}.mjs`));
37+
38+
switch (valuesToRead) {
39+
case 'dirname-and-filename':
40+
assert.deepStrictEqual(results[n - 1], [fixtureDir, fixtureFile]);
41+
break;
42+
case 'dirname':
43+
assert.strictEqual(results[n - 1], fixtureDir);
44+
break;
45+
case 'filename':
46+
assert.strictEqual(results[n - 1], fixtureFile);
47+
break;
48+
case 'url':
49+
assert.strictEqual(results[n - 1], `${fixtureFileURL}?i=${n - 1}`);
50+
break;
51+
}
3652
});
3753
}
Collapse file
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
export const dirname = import.meta.dirname;
2-
export const filename = import.meta.filename;
1+
export default () => [ import.meta.dirname, import.meta.filename ];
Collapse file
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const dirname = import.meta.dirname;
1+
export default () => import.meta.dirname;
Collapse file
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const filename = import.meta.filename;
1+
export default () => import.meta.filename;
Collapse file
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default () => import.meta.url;

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.