Replace some JSObjects used to store module metadata with native structures
Categories
(Core :: JavaScript Engine, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox109 | --- | fixed |
People
(Reporter: jonco, Assigned: jonco)
References
(Blocks 1 open bug)
Details
(Keywords: perf-alert)
Attachments
(3 files)
Currently the module metadata is all stored in JSObjects. This was originally done for ease of access by the self-hosted module implementation and so that testcode could get at the internals of the system.
Since the module system is no longer self-hosted it makes sense to move these to a native representation. This could reduce memory use and GC overhead a little for large module graphs.
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 1•2 years ago
|
||
This removes the JSObject per import entry and the ArrayObject holding them,
replacing them with a vector of ImportEntry native objects.
This was straightforward apart from the changes to the shell wrappers where I
had to add a new set of defines for dealing with native classes.
Assignee | ||
Comment 2•2 years ago
|
||
The same as the previous patch, but for export entries.
Depends on D163947
Assignee | ||
Comment 3•2 years ago
|
||
This is more complicated because it needed a change to the public API now we're
not longer returning an array object. The new API is less error prone since
it's no longer possible for the caller to mutate the object returned.
Depends on D163948
Updated•2 years ago
|
Comment 5•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/be9fc5ccfb72
https://hg.mozilla.org/mozilla-central/rev/8cb06ae1d62f
https://hg.mozilla.org/mozilla-central/rev/02823568f12c
Comment 6•2 years ago
|
||
(In reply to Pulsebot from comment #4)
Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/be9fc5ccfb72
Part 1: Replace ImportEntryObject with native ImportEntry r=arai
https://hg.mozilla.org/integration/autoland/rev/8cb06ae1d62f
Part 2: Replace ExportEntryObject with native ExportEntry r=arai
https://hg.mozilla.org/integration/autoland/rev/02823568f12c
Part 3: Replace RequestedModuleObject with native RequestedModule r=arai
== Change summary for alert #36418 (as of Mon, 12 Dec 2022 14:51:10 GMT) ==
Improvements:
Ratio | Test | Platform | Options | Absolute values (old vs new) |
---|---|---|---|---|
1% | Base Content JS | windows10-64-2004-shippable-qr | fission | 1,614,620.67 -> 1,606,102.00 |
1% | Base Content JS | macosx1015-64-shippable-qr | fission | 1,612,248.00 -> 1,603,832.00 |
0.42% | Base Content JS | windows10-64-2004-shippable-qr | fission | 1,614,698.67 -> 1,607,926.67 |
0.41% | Base Content JS | linux1804-64-shippable-qr | fission | 1,610,288.67 -> 1,603,668.67 |
For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=36418
Updated•2 years ago
|
Description
•