Make whole cell store buffer tracing more efficient
Categories
(Core :: JavaScript: GC, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox133 | --- | fixed |
People
(Reporter: jonco, Assigned: jonco)
Details
(Keywords: perf-alert)
Attachments
(2 files)
Currently we iterate through the whole cell store buffer using a linked list, from the most recently allocated to the least recently allocated. However the elements of this list are all allocated from a LifoAlloc so mostly follow each other in memory. We can use the LifoAlloc to iterate them and avoid pointer chasing.
The linked list is still necessary for sweeping.
| Assignee | ||
Comment 1•1 year ago
|
||
These should be actual constants not members which are const.
| Assignee | ||
Comment 2•1 year ago
|
||
Comment 4•1 year ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/748d63c0f0a2
https://hg.mozilla.org/mozilla-central/rev/01a47e72987a
Comment 5•1 year ago
|
||
(In reply to Pulsebot from comment #3)
Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/748d63c0f0a2
Part 1: Remove constant members from ArenaCellSte r=sfink
https://hg.mozilla.org/integration/autoland/rev/01a47e72987a
Part 2: Step directly through the elements of the whole cell store buffer
rather than using a linked list r=sfink
Perfherder has detected a browsertime performance change from push 01a47e72987a3b02eb1d54a9a2011504f3b8038b.
Improvements:
| Ratio | Test | Platform | Options | Absolute values (old vs new) | Performance Profiles |
|---|---|---|---|---|---|
| 21% | expedia LastVisualChange | linux1804-64-shippable-qr | fission warm webrender | 2,772.56 -> 2,184.71 | Before/After |
| 17% | expedia PerceptualSpeedIndex | linux1804-64-shippable-qr | fission warm webrender | 1,265.24 -> 1,052.40 | Before/After |
| 15% | expedia LastVisualChange | macosx1015-64-shippable-qr | fission warm webrender | 2,335.18 -> 1,978.94 | Before/After |
| 14% | expedia SpeedIndex | linux1804-64-shippable-qr | fission warm webrender | 725.18 -> 620.41 | Before/After |
| 14% | expedia PerceptualSpeedIndex | macosx1015-64-shippable-qr | fission warm webrender | 1,164.41 -> 1,005.68 | Before/After |
| ... | ... | ... | ... | ... | ... |
| 4% | expedia ContentfulSpeedIndex | linux1804-64-shippable-qr | fission warm webrender | 433.72 -> 415.76 | Before/After |
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.
You can run these tests on try with ./mach try perf --alert 2372
For more information on performance sheriffing please see our FAQ.
Description
•