-
Notifications
You must be signed in to change notification settings - Fork 45
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
Update quanta requirement from 0.9.0 to 0.11.0 #175
Conversation
Updates the requirements on [quanta](https://github.com/metrics-rs/quanta) to permit the latest version. - [Release notes](https://github.com/metrics-rs/quanta/releases) - [Changelog](https://github.com/metrics-rs/quanta/blob/main/CHANGELOG.md) - [Commits](metrics-rs/quanta@v0.9.0...v0.11.0) --- updated-dependencies: - dependency-name: quanta dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]>
Quanta removed the `as_u64` method on Instant (reasonably)! So now we have to compare with our own reference instant. To do so, we use `once_cell::Lazy`.
This fixes #174 |
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #175 +/- ##
==========================================
+ Coverage 97.52% 97.69% +0.16%
==========================================
Files 31 31
Lines 2220 2209 -11
==========================================
- Hits 2165 2158 -7
+ Misses 55 51 -4
☔ View full report in Codecov by Sentry. |
Uuuunfortunately, with the move to |
@antifuchs , just out of curiosity, have you tried turning on Apparently, per parking_lot's README, the "RwLock takes advantage of hardware lock elision on processors that support it, which can lead to huge performance wins with many readers." |
Oooh, I hadn't tried that - in profiles, the once cell (or even the math I do on the stored Instant) isn't appearing to make much of a difference to what's on master, but I'll try this in benchmarks and report back! |
Update: Same performance against baseline - about 50% slower with the quanta clock. I think quanta might have regressed in performance? I'll have to try this in a more micro benchmark. |
This balances out the performance degradation quite a bit (only 28% slower vs. 50% slower), by scaling the readings less often. This still means we lose some perf, but at least it's safe!
* master: Changelog Rephrase the burst capacity section to be less confusing Update criterion requirement from 0.3.2 to 0.4.0 Bump codecov/codecov-action from 3.1.0 to 3.1.1
OK, this iteration is only 28% slower on macOS (see also metrics-rs/quanta#84, which would help - I think!), I'll see how it performs on linux and in CI now. |
Huh! This is way faster on linux, with rustc 1.69.0:
I'll take it! Let's ship this. |
bors merge |
Fixes #178 |
Fixes #174 |
Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
190: Use direct nanosecond operations in quanta, bring speed back to baseline r=antifuchs a=antifuchs This uses metrics-rs/quanta#86 to avoid roundtripping nanosecond counts through Duration, which does a bunch of integer math on construction and deconstruction, which we don't even need (unless we exceed the 270 years of governor's useful operational uptime). In benchmarks, this brings speeds back to the baseline pre-quanta-0.11 (see #175) Co-authored-by: Andreas Fuchs <[email protected]>
Updates the requirements on quanta to permit the latest version.
Changelog
Sourced from quanta's changelog.
... (truncated)
Commits
f5404fe
(cargo-release) version 0.11.070a6ab8
switch away from actions-rs due to deprecated node.js versioning stuff + gene...a4f2055
fix clobbering of global recent time making tests flaky + formatting2eb5cd2
Avoid contention onInstant::now()
calls (#82)7433c21
Update wasi requirement from 0.10 to 0.11 (#77)cf035b8
For macos and ios switch from mach crate to mach2 crate (#79)fe14834
bump edition to 2021 and MSRV to 1.60.0e499709
Update prost-types requirement from 0.8 to 0.11 (#74)3a7d361
(cargo-release) version 0.10.1278c0b9
downgrade/pin criterion to v0.3.3 to avoid semver breaking upgrade to plotter...You can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)