Closed Bug 1846267 Opened 1 year ago Closed 1 year ago

Specialise normal marking path to remove implicit edge checks

Categories

(Core :: JavaScript: GC, task, P1)

task

Tracking

()

RESOLVED FIXED
118 Branch
Tracking Status
firefox118 --- fixed

People

(Reporter: jonco, Assigned: jonco)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

I found that specialising the normal marking path to remove the implicit edge checks was a performance win (I already did this for the parallel marking path).

This works by adding a new MarkingOptions enum and MarkingTracerT specialization that is used only when weak marking.

This improves splay and splay latency by 1.5% to 3% on macOS and Linux. Microbenchmarks focused on marking large list and tree data structures improved by 5% to 15%.

I'm not sure why this makes such a big difference but I suspect it's due to the implicit edge path being inlined into the marking code.

This works by adding a new MarkingOptions enum and MarkingTracerT
specialization that is used only when weak marking.

Blocks: GC
Severity: -- → N/A
Priority: -- → P1
Pushed by jcoppeard@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fb4bb27720d6 Specialize normal marking path to remove implicit edge checks r=sfink
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 118 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: