-
-
Notifications
You must be signed in to change notification settings - Fork 726
refactor(mangler): use bump allocator for internal storage #11409
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(mangler): use bump allocator for internal storage #11409
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
ef0fae9 to
6d377a2
Compare
CodSpeed Instrumentation Performance ReportMerging #11409 will improve performances by 3.27%Comparing Summary
Benchmarks breakdown
|
overlookmotel
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
⚡
mangler[RadixUIAdoptionSection.jsx]15.1 µs 14.2 µs +6.57%
Nice! I am guessing that this isn't just noise. RadixUIAdoptionSection.jsx is the smallest test fixture, so it makes sense it moves the needle most here, as the allocations are a larger slice of the overall workload. Personally I think it's the most important benchmark we have as it's most representative of real-world code. Most people don't write 50,000-line files like checker.ts!
It's a shame that FixedBitset doesn't support custom allocators, or we could put them into the temp arena too. They're ideal candidates for putting in an arena as they never grow (high cost of growth is the only perf downside of arena-allocated data structures).
Probably we could write our own version of FixedBitset which allocates in an arena. We don't use most of FixedBitset's APIs, and I don't think the APIs we do use benefit from SIMD-acceleration, so our version could be a lot simpler. That could be fun! But, to be honest, mangler is so fast anyway that it's not the first place we should be looking for optimizations.
4f9be98 to
5cf8bc8
Compare
5b87703 to
b85605f
Compare
We could at least put this into an arena-owned |
|
Perf improvement appears to be fairly consistent after refactoring as well: ⚡ mangler[RadixUIAdoptionSection.jsx] 15 µs 14.2 µs +5.59% |
I don't think we can, unfortunately. That said, we should implement |
5cf8bc8 to
723308b
Compare
b85605f to
37b6c55
Compare
Makes sense, I thought it was simply the lack of |
Merge activity
|
723308b to
ba6c24b
Compare
37b6c55 to
d97fe8d
Compare
ba6c24b to
fa4966d
Compare
d97fe8d to
bfa05f2
Compare
Related to #11347. Mangler benchmarks display so much variance that they're pretty useless. Valiant attempts to reduce the variance (#11408, #11409) have not worked, and contributors have been getting confused by the bonkers "Performance regressed 13%" alerts on unrelated PRs. No one is working on mangler at the moment, so just disable the damn things!

No description provided.