-
-
Notifications
You must be signed in to change notification settings - Fork 33.9k
Closed
Labels
esmIssues and PRs related to the ECMAScript Modules implementation.Issues and PRs related to the ECMAScript Modules implementation.
Description
- Version: 14.13.1
- Platform: Linux. Fedora 32.
- Subsystem: modules?
What steps will reproduce the bug?
mkdir slow-esm
cd slow-esm
npm init -y
npm i typescriptNow create two files:
a.js:
(async () => {
const start = Date.now();
require('typescript')
console.log(`requiring typescript took ${Date.now() - start}ms`);
})()a.mjs
(async () => {
const start = Date.now();
await import('typescript');
console.log(`requiring typescript took ${Date.now() - start}ms`)
})()node a.js outputs:
requiring typescript took 147ms
node a.mjs outputs:
requiring typescript took 440ms
How often does it reproduce? Is there a required condition?
The numbers change +-10ms, but the slowdown is pretty noticable.
What is the expected behavior?
Have a somewhat similar evaluation speed?
What do you see instead?
3x slowdown.
Additional information
I actually converted a commonjs app to native esm... the slowdown was clear, so I decided to make the naive check.
EDIT: Is it because typescript is a commonjs module? tokenization kicks in to find named exports? If so, is there a way to turn it off so I can check the speed without it?
tomerigal, PeterShershov and ExE-Boss
Metadata
Metadata
Assignees
Labels
esmIssues and PRs related to the ECMAScript Modules implementation.Issues and PRs related to the ECMAScript Modules implementation.