Closed
Bug 1260984
Opened 9 years ago
Closed 9 years ago
Reduce static data sizes by separating js::ClassSpec from js::Class
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla48
Tracking | Status | |
---|---|---|
firefox48 | --- | fixed |
People
(Reporter: n.nethercote, Assigned: n.nethercote)
References
Details
(Whiteboard: [MemShrink])
Attachments
(3 files)
(deleted),
patch
|
jorendorff
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
jorendorff
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
jorendorff
:
review+
|
Details | Diff | Splinter Review |
Bug 1259194 moved ObjectOps out of js::Class, reducing static data by 208 KiB (on 64-bit) in the process.
This bug is about doing the same thing with ClassSpec. The reduction is 138 KiB, which a bit smaller because ClassSpec is 8 words compared to ObjectOps' 12 words, but still pretty good.
Assignee | ||
Comment 1•9 years ago
|
||
It's full of nulls which means that JS_NULL_OBJECT_OPS suffices.
Attachment #8736608 -
Flags: review?(efaustbmo)
Assignee | ||
Updated•9 years ago
|
Assignee: nobody → n.nethercote
Status: NEW → ASSIGNED
Assignee | ||
Comment 2•9 years ago
|
||
A number of ObjectOps instances are more exposed than they need to be. This
patch converts several to be either private (within a class) or static (within
a file).
Attachment #8736609 -
Flags: review?(efaustbmo)
Assignee | ||
Comment 3•9 years ago
|
||
js::ObjectOps is often all null. When it's not all null, it's often duplicated
among classes. By pulling it out into its own struct, and using a (possibly
null) pointer in js::Class, we can save 138 KiB per process on 64-bit, and half
that on 32-bit.
Attachment #8736611 -
Flags: review?(efaustbmo)
Comment 4•9 years ago
|
||
Comment on attachment 8736608 [details] [diff] [review]
(part 1) - Remove ClonedBlockObject::objectOps_
Review of attachment 8736608 [details] [diff] [review]:
-----------------------------------------------------------------
*steal*
Attachment #8736608 -
Flags: review?(efaustbmo) → review+
Updated•9 years ago
|
Attachment #8736609 -
Flags: review?(efaustbmo) → review+
Comment 5•9 years ago
|
||
Comment on attachment 8736611 [details] [diff] [review]
(part 3) - Separate js::ClassSpec from js::Class
Review of attachment 8736611 [details] [diff] [review]:
-----------------------------------------------------------------
The commit message still refers to js::ObjectOps rather than js::ClassSpec.
Attachment #8736611 -
Flags: review?(efaustbmo) → review+
Assignee | ||
Comment 6•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/fb1734c047af5bbfa2ee1ec4844dd16764b184e9
Bug 1260984 (part 1) - Remove ClonedBlockObject::objectOps_. r=jorendorff.
https://hg.mozilla.org/integration/mozilla-inbound/rev/0ed129db55485ccd748f44b4d0b02de607dd290c
Bug 1260984 (part 2) - Reduce ObjectOps exposure. r=jorendorff.
Assignee | ||
Comment 7•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/f29f34e249d2ca3a438beb108c1139a858b32ea1
Bug 1260984 (part 3) - Separate js::ClassSpec from js::Class. r=jorendorff.
Comment 8•9 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/fb1734c047af
https://hg.mozilla.org/mozilla-central/rev/0ed129db5548
https://hg.mozilla.org/mozilla-central/rev/f29f34e249d2
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox48:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
Updated•8 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•