-
Notifications
You must be signed in to change notification settings - Fork 59
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
Use triomphe::Arc
by default.
#88
Conversation
Some more benchmarks, this time on x86_64 Linux: https://gist.github.com/michaelsproul/4462d18ce7075479b03517349ffd06e2 Unfortunately it looks like we can't just Pareto-improve by switching to One strategy would be to switch the backend only where the gains are universal, i.e. for My benchmarking process was:
If you have any different hardware @orium it might also be good to see the results from that. |
CI is failing during vendoring. Blocked on an |
I've just released archery v1.1.0. |
Updated! Thanks! What do you think of our options re: architectures & defaults? |
Codecov Report
@@ Coverage Diff @@
## main #88 +/- ##
=======================================
Coverage 96.29% 96.29%
=======================================
Files 11 11
Lines 1645 1645
=======================================
Hits 1584 1584
Misses 61 61
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
I've run the benchmark in an intel x86_64 and I saw more regressions than in the spreadsheet you shared, but I ran it while doing other light work on my laptop so the results are not very reliable. I'll run the benchmarks properly soon and decide based on both our results. |
Results in an intel x86_64:
Results in arm (raspberry pi):
In my results:
In your results:
My conclusion is still a win overall, even if there are some performance regressions. I think using I also reported this to triomphe because maybe there are optimizations in |
Change the default
Arc
backend totriomphe
, which results in speedups of up to 40% (per #85).The default backend is changed to
ArcTK
, while retaining the ability for the user to swap out toArcK
if they prefer.This PR does not currently include the ability to completely compile-out
triomphe
. If that were desired, we would have to expose a feature calledtriomphe
which controls the backend, and causesstd::sync::Arc
to be used when the feature is disabled.Note: this PR is a reopening of #86 against the new default branch
main
.