WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Conversation

@yannham
Copy link
Collaborator

@yannham yannham commented Dec 5, 2025

Depends on #2455.

This commit mostly copies the style of the stdlib in std::rc::Rc, in hope of gaining the same kind of optimizations. It does nullify the loss of #2455, and wins overall 5-7% on the OPL benchmark in runtime when compared to master. After a bit of experimentation, it seems that the [u8; 7] representation had to go for those optimizations to fire properly.

@yannham yannham requested a review from jneem December 5, 2025 16:37
@github-actions
Copy link
Contributor

github-actions bot commented Dec 5, 2025

🐰 Bencher Report

Branchperf/optimize-refcounting
Testbedubuntu-latest
Click to view all benchmark results
BenchmarkLatencymicroseconds (µs)
diagnostics-benches/inputs/goto-perf.ncl📈 view plot
🚷 view threshold
10,096.00 µs
diagnostics-benches/inputs/large-record-tree.ncl📈 view plot
🚷 view threshold
185,390.00 µs
diagnostics-benches/inputs/redis-replication-controller.ncl📈 view plot
🚷 view threshold
306.37 µs
diagnostics-benches/inputs/small-record-tree.ncl📈 view plot
🚷 view threshold
429.21 µs
fibonacci 10📈 view plot
🚷 view threshold
218.69 µs
foldl arrays 50📈 view plot
🚷 view threshold
369.50 µs
foldl arrays 500📈 view plot
🚷 view threshold
2,669.30 µs
foldr strings 50📈 view plot
🚷 view threshold
2,827.50 µs
foldr strings 500📈 view plot
🚷 view threshold
26,977.00 µs
generate normal 250📈 view plot
🚷 view threshold
21,603.00 µs
generate normal 50📈 view plot
🚷 view threshold
1,155.60 µs
generate normal unchecked 1000📈 view plot
🚷 view threshold
1,650.40 µs
generate normal unchecked 200📈 view plot
🚷 view threshold
335.92 µs
init-diagnostics-benches/inputs/goto-perf.ncl📈 view plot
🚷 view threshold
52,824.00 µs
init-diagnostics-benches/inputs/large-record-tree.ncl📈 view plot
🚷 view threshold
205,430.00 µs
init-diagnostics-benches/inputs/redis-replication-controller.ncl📈 view plot
🚷 view threshold
47,784.00 µs
init-diagnostics-benches/inputs/small-record-tree.ncl📈 view plot
🚷 view threshold
47,699.00 µs
pidigits 100📈 view plot
🚷 view threshold
1,890.30 µs
pipe normal 20📈 view plot
🚷 view threshold
575.16 µs
pipe normal 200📈 view plot
🚷 view threshold
4,299.70 µs
product 30📈 view plot
🚷 view threshold
259.95 µs
requests-benches/inputs/goto-perf.ncl-000📈 view plot
🚷 view threshold
3,018.50 µs
requests-benches/inputs/large-record-tree.ncl-000📈 view plot
🚷 view threshold
585,160.00 µs
requests-benches/inputs/large-record-tree.ncl-001📈 view plot
🚷 view threshold
88.70 µs
scalar 10📈 view plot
🚷 view threshold
489.00 µs
sum 30📈 view plot
🚷 view threshold
261.23 µs
🐰 View full continuous benchmarking report in Bencher

Base automatically changed from perf/thunks-inline to master December 8, 2025 21:56
@dpulls
Copy link

dpulls bot commented Dec 8, 2025

🎉 All dependencies have been resolved !

@yannham yannham added this pull request to the merge queue Dec 9, 2025
Merged via the queue into master with commit 8764d96 Dec 9, 2025
6 checks passed
@yannham yannham deleted the perf/optimize-refcounting branch December 9, 2025 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants