Closed
Bug 1125398
Opened 8 years ago
Closed 8 years ago
Add additional loads to GC ubench
Categories
(Core :: JavaScript: GC, defect)
Core
JavaScript: GC
Tracking
()
RESOLVED
FIXED
mozilla38
People
(Reporter: sfink, Assigned: sfink)
References
(Blocks 1 open bug)
Details
Attachments
(9 files)
22.68 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
11.27 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
1.27 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
2.35 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
2.81 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
2.08 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
2.16 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
2.23 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
3.14 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
Add in some more variants of mutator allocation behavior.
Assignee | ||
Comment 1•8 years ago
|
||
Refactoring: split out the ubench code into a separate file.
Attachment #8554002 -
Flags: review?(terrence)
Assignee | ||
Comment 2•8 years ago
|
||
Some of the mutator allocation loads I will be adding really need their own set of garbage/frame, total garbage parameters. (eg, if you create as many weakmap entries as you do plain objects, you're gonna have a bad time.) Also change around the UI a bit. Make it more obvious what's going on when you're running a test or tests. Indent stuff. More gooderify.
Attachment #8554006 -
Flags: review?(terrence)
Assignee | ||
Comment 3•8 years ago
|
||
Everyone's favorite GC nightmare: WeakMaps!
Attachment #8554008 -
Flags: review?(terrence)
Assignee | ||
Comment 4•8 years ago
|
||
So certain optimizations would work really well if you're only considering a single weakmap. Make two of them.
Attachment #8554010 -
Flags: review?(terrence)
Assignee | ||
Comment 5•8 years ago
|
||
Benchmark large slots allocation
Attachment #8554011 -
Flags: review?(terrence)
Assignee | ||
Comment 6•8 years ago
|
||
Now for the really interesting stuff: DOM nodes! Hm, come to think of it, I ought to have one where I put expandos on stuff.
Attachment #8554013 -
Flags: review?(terrence)
Assignee | ||
Comment 7•8 years ago
|
||
ArrayBuffer objects are small and malloc a bunch of data. Good test.
Attachment #8554015 -
Flags: review?(terrence)
Assignee | ||
Comment 8•8 years ago
|
||
Let's see how much we can suffer from foreground finalization.
Attachment #8554017 -
Flags: review?(terrence)
Updated•8 years ago
|
Attachment #8554002 -
Flags: review?(terrence) → review+
Comment 9•8 years ago
|
||
Comment on attachment 8554006 [details] [diff] [review] Give each test load its own parameters Review of attachment 8554006 [details] [diff] [review]: ----------------------------------------------------------------- Much nicer. ::: js/src/devtools/gc-ubench/index.html @@ +10,5 @@ > <script src="benchmarks/globalArrayArrayLiteral.js"></script> > <script src="benchmarks/globalArrayLargeArray.js"></script> > <script src="benchmarks/globalArrayObjectLiteral.js"></script> > <script src="benchmarks/globalArrayReallocArray.js"></script> > + <script src="benchmarks/selfCyclicWeakMap.js"></script> I guess this needs to move down a couple patches. @@ +25,5 @@ > <input type="button" id="stop" value="Pause" onclick="stopstart()"></input> > </div> > > <div> > + Duration: <input type="text" id="test-duration" size=3 value="8" onchange="duration_changed()"></input>s "" around the 3 in size=3.
Attachment #8554006 -
Flags: review?(terrence) → review+
Comment 10•8 years ago
|
||
Comment on attachment 8554008 [details] [diff] [review] Benchmark load: self-referential WeakMap Review of attachment 8554008 [details] [diff] [review]: ----------------------------------------------------------------- I winced reading this. You'll also want to move the import <script> from the prior patch to this patch.
Attachment #8554008 -
Flags: review?(terrence) → review+
Comment 11•8 years ago
|
||
Comment on attachment 8554010 [details] [diff] [review] Benchmark load: Pair of mutually recursive weakmaps Review of attachment 8554010 [details] [diff] [review]: ----------------------------------------------------------------- Heh.
Attachment #8554010 -
Flags: review?(terrence) → review+
Comment 12•8 years ago
|
||
Comment on attachment 8554011 [details] [diff] [review] Benchmark load: large objects Review of attachment 8554011 [details] [diff] [review]: ----------------------------------------------------------------- Yup. This should be the slots equivalent of globalArrayReallocArray.
Attachment #8554011 -
Flags: review?(terrence) → review+
Comment 13•8 years ago
|
||
Comment on attachment 8554013 [details] [diff] [review] Benchmark load; DOM textNodes Review of attachment 8554013 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/devtools/gc-ubench/benchmarks/textNodes.js @@ +8,5 @@ > + unload: () => { garbage = []; garbageIndex = 0; }, > + > + defaultGarbagePerFrame: "100K", > + defaultGarbageTotal: "8", > + Whitespace at end of line. @@ +12,5 @@ > + > + makeGarbage: (N) => { > + var a = []; > + for (var i = 0; i < N; i++) > + a.push(document.createTextNode("t" + i)); We'll also want a test with extremely large text nodes.
Attachment #8554013 -
Flags: review?(terrence) → review+
Comment 14•8 years ago
|
||
Comment on attachment 8554015 [details] [diff] [review] Benchmark load: large ArrayBuffers (for big malloc data) Review of attachment 8554015 [details] [diff] [review]: ----------------------------------------------------------------- I guess those don't get nursery alloc with inline storage anymore?
Attachment #8554015 -
Flags: review?(terrence) → review+
Updated•8 years ago
|
Attachment #8554017 -
Flags: review?(terrence) → review+
Assignee | ||
Comment 15•8 years ago
|
||
(In reply to Terrence Cole [:terrence] from comment #14) > Comment on attachment 8554015 [details] [diff] [review] > Benchmark load: large ArrayBuffers (for big malloc data) > > Review of attachment 8554015 [details] [diff] [review]: > ----------------------------------------------------------------- > > I guess those don't get nursery alloc with inline storage anymore? Large ones do not because they're large. Then again, small ones don't either, because they have finalizers. :-) But it's probably not a loss, because small typed arrays and typed objects store their data inline now as long as you don't ask for their buffers. And I *think* they're nursery-allocatable too.
Assignee | ||
Comment 16•8 years ago
|
||
Borrowing from smaug's event creation microbenchmark.
Attachment #8554862 -
Flags: review?(terrence)
Updated•8 years ago
|
Attachment #8554862 -
Flags: review?(terrence) → review+
Assignee | ||
Comment 17•8 years ago
|
||
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/90623a5d6c0c remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/b8257c0c97ad remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/abe775af8073 remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/4bbb59685268 remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/cbf059987742 remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/46cde5a19b8d remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/8a5b30881128 remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/97c12091bda5 remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/b5a4e4c8ed85
Comment 18•8 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/90623a5d6c0c https://hg.mozilla.org/mozilla-central/rev/b8257c0c97ad https://hg.mozilla.org/mozilla-central/rev/abe775af8073 https://hg.mozilla.org/mozilla-central/rev/4bbb59685268 https://hg.mozilla.org/mozilla-central/rev/cbf059987742 https://hg.mozilla.org/mozilla-central/rev/46cde5a19b8d https://hg.mozilla.org/mozilla-central/rev/8a5b30881128 https://hg.mozilla.org/mozilla-central/rev/97c12091bda5 https://hg.mozilla.org/mozilla-central/rev/b5a4e4c8ed85
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
You need to log in
before you can comment on or make changes to this bug.
Description
•