Repository navigation
Conversation
Collaborator
|
Review requested:
|
Contributor
|
Welcome to Node.js, and thank you for your first contribution! Before review, please take a moment to read:
Please make sure every commit is signed off. For a first pull request, GitHub Actions require collaborator approval and Jenkins CI must be started by a collaborator or triager, so an initial wait is normal. |
Share empty dependency arrays for leaf ModuleJobs instead of allocating separate arrays for each job. Remove unused per-job fields and avoid retaining a default import attributes object when it is not provided. Assisted-by: OpenCode Signed-off-by: Uzini <43294422+Uziniii@users.noreply.github.com>
Uziniii
force-pushed
the
perf/esm-module-job-memory
branch
from
November 11, 2026 00:25
73be8cf to
f498043
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Leaf
ModuleJobinstances without module requests now share a frozen empty array instead of allocating separate arrays for dependency tracking.Modules with dependencies keep their existing mutable arrays. The unused
importAttributesandisMainproperties are no longer retained, while the constructor arguments remain unchanged.Benchmark on
lodash-es@4.17.21with 30 alternating baseline/patched runs:heapUsedResult: -185,960 bytes (-0.186 MB, -1.55%).
A targeted benchmark with 20,000 leaf ESM modules showed -9.85%
heapUsed; this is a focused microbenchmark, not a general Node.js gain.The ESM test suite passes 245 tests. Three sandbox-related failures occur on both baseline and patched versions.
AI assistance was used to investigate the Git history, develop this change, and help draft this description. I reviewed and verified the code and take responsibility for the submitted change.