Closed Bug 1893690 Opened 2 months ago Closed 1 month ago

Implement associativity in AtomCacheHashTable

Categories

(Core :: JavaScript Engine, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
128 Branch
Tracking Status
firefox128 --- fixed

People

(Reporter: jlink, Assigned: jlink)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [sp3])

Attachments

(1 file)

In bug 1879143, the per-zone atom cache was switched to use AtomCacheHashTable. Further investigations, including from the regression reported in bug 1888676, have shown the further improvements are possible by making this cache be associative.

SP3 results are pretty much universally positive with this change: 2k cache w/ 2-way associativity, 2k cache w/ 2-way associativity, 2k cache with 4-way associativity.

DAMP results (which can be seen in those comparison results, for example here) are decidedly more mixed - some tests get significantly better with high confidence and some get significantly worse with high confidence. That some tests get so much worse with an associative test is unexpected so further investigation on why this is is warranted.

No longer depends on: 1879143, 1885114
Blocks: 1888676
No longer blocks: 1884050
Severity: -- → S3
Priority: -- → P3
Assignee: nobody → jlink

SP3 is pretty happy with this change. All 11 high confidence subtest results are improvements in the range of 0.8-1.5%. There are an additional 23 medium confidence subtest changes, all of which are improvements as well. A number of those improvements are > 2%.

DAMP results are a mixed bag with some very high confidence improvements, in particular in source-map.constructor.DAMP which improves by almost 10%.

Pushed by jlink@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3686af33e2b0
Implemented 4-way associativity in AtomCacheHashTable r=arai
Status: NEW → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 128 Branch
Blocks: speedometer3
Whiteboard: [sp3]

Perfherder has detected a devtools performance change from push 3686af33e2b0239c18e257f45d13bb2399e8c6fb.

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
9% damp source-map.constructor.DAMP windows10-64-shippable-qr e10s fission stylo webrender 107.07 -> 97.35
9% damp source-map.constructor.DAMP windows10-64-shippable-qr e10s fission stylo webrender 106.90 -> 97.39
8% damp source-map.constructor.DAMP windows10-64-shippable-qr e10s fission stylo webrender-sw 103.87 -> 95.35
6% damp source-map.constructor.DAMP linux1804-64-shippable-qr e10s fission stylo webrender 124.22 -> 116.21

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 392

For more information on performance sheriffing please see our FAQ.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: