Closed
Bug 1177515
Opened 9 years ago
Closed 9 years ago
Use ObjectGroup TypeInfo to speed up marking
Categories
(Core :: JavaScript: GC, defect)
Core
JavaScript: GC
Tracking
()
RESOLVED
FIXED
mozilla42
Tracking | Status | |
---|---|---|
firefox42 | --- | fixed |
People
(Reporter: terrence, Assigned: jonco)
References
(Blocks 1 open bug)
Details
Attachments
(1 file, 1 obsolete file)
3.54 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
For example, if we know that an Array does not contain any markable Values, we can skip marking it.
Assignee | ||
Comment 1•9 years ago
|
||
Here's a patch to do this, skipping tracing of dense elements if type information indicates that the object has no markable values in integer indexed properties. I'm not really familiar with the type inference code and had to do some experimentation to make this work. Brian, could you check what I've done is sane?
Assignee: terrence → jcoppeard
Attachment #8627182 -
Flags: feedback?(bhackett1024)
Comment 2•9 years ago
|
||
Comment on attachment 8627182 [details] [diff] [review] bug1177515-skip-tracing-elements Review of attachment 8627182 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/gc/Marking.cpp @@ +1181,5 @@ > return true; > } > > +inline static bool > +ObjectElementsMayBeMarkable(NativeObject* nobj) ObjectDenseElementsMayBeMarkable? @@ +1189,5 @@ > + * to see if the object's elements contain any GC pointers. If not, we > + * don't need to trace them. > + */ > + const unsigned MinElementsLength = 32; > + if (nobj->getDenseInitializedLength() < MinElementsLength || nobj->hasLazyGroup()) Instead of hasLazyGroup() here, this should call isSingleton(). hasLazyGroup() implies isSingleton(), and the isSingleton() test will also account for the fact that type information is lazily tracked for singletons (the property is not created until something actually needs it).
Attachment #8627182 -
Flags: feedback?(bhackett1024) → feedback+
Assignee | ||
Comment 3•9 years ago
|
||
Attachment #8627182 -
Attachment is obsolete: true
Attachment #8627650 -
Flags: review?(terrence)
Reporter | ||
Comment 4•9 years ago
|
||
Comment on attachment 8627650 [details] [diff] [review] bug1177515-skip-tracing-elements v2 Review of attachment 8627650 [details] [diff] [review]: ----------------------------------------------------------------- Wow! Nice! Will be interesting to see if it wins us some epsilon of throughput on octane.
Attachment #8627650 -
Flags: review?(terrence) → review+
Comment 6•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/799982d6a1b8
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox42:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
You need to log in
before you can comment on or make changes to this bug.
Description
•