Repository navigation
Cut 0.10.0: consolidate the changelog and refresh every published number - #265
Merged
Merged
Conversation
Version 0.9.0 -> 0.10.0. No API changed, so not a major; one documented behaviour did (lazy modes now pin the payload they borrow from, #239), which is more than a patch. Single-sourced from Cargo.toml; the two lockfiles follow. The changelog needed consolidating before it could be released. Twenty-two PRs had each appended their own section heading, leaving [Unreleased] with three "### Added" blocks and three "### Changed" blocks, and #223's entry written out twice, verbatim. It is now one Added, one Changed and one Fixed, 21 entries, with the lazy-borrow behaviour change leading Changed because it is the only one a caller can observe. Every performance number in the Readme was from the 0.9.0 measurement and is now roughly half of what the code does, which makes them worse than no numbers. All three tables are re-measured on one runner (EPYC 7763, 4 vCPU) from a single dispatched benchmark run, keeping each table's own statistic -- minimum for the library comparison, median for the mode and batch tables: against other libraries 0.59 -> 0.34 ms, and 25x/34x -> 42x/62x parse_email 0.575 -> 0.326 ms parse_email_tree 0.556 -> 0.326 ms 8 x 767 KiB, threads=1 4.48 -> 2.63 ms 2000 x 0.8 KB vs a pool 11.7x -> 13.9x One ratio moved the wrong way and says so in the text: the mode= multipliers shrank (lazy 7.2x -> 5.8x, metadata 11.3x -> 6.4x) because the default mode roughly halved, so there is less left to skip. Every mode is faster in absolute terms than it was in 0.9.0. Signed-off-by: kurok <22548029+kurok@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cuts 0.10.0. Version
0.9.0 → 0.10.0: no API changed, so not a major; one documented behaviour did — lazy modes now pin the payload they borrow from (#239) — which is more than a patch. Single-sourced fromCargo.toml; both lockfiles follow.The changelog needed consolidating before it could be released
Twenty-two PRs had each appended their own section heading, so
[Unreleased]held three### Addedblocks and three### Changedblocks, and #223's entry appeared twice, verbatim. It is now one Added, one Changed and one Fixed — 21 entries — with the lazy-borrow behaviour change leadingChanged, because it is the only one a caller can observe.Every published number was roughly half of what the code does
All the Readme's performance figures dated from the 0.9.0 measurement. Stale numbers that are 2× wrong are worse than no numbers, so all three tables are re-measured from a single dispatched benchmark run on one runner (EPYC 7763, 4 vCPU), each table keeping its own statistic — minimum for the library comparison, median for the mode and batch tables.
parse_emailparse_email_treethreads=1The
mail-parserrow also moves 4.6.4 → 4.6.5, which #263 bumped.One ratio moved the wrong way, and the text now says so. The
mode=multipliers shrank — lazy 7.2x → 5.8x, metadata 11.3x → 6.4x — because the default mode roughly halved, so there is less of it left to skip. Every mode is faster in absolute terms than it was in 0.9.0, and the Readme says that rather than quietly dropping the comparison.Verification
0.10.0;check_bench_lockfile.pypasses (it caughtbench/Cargo.lockstill on 0.9.0 mid-change)Cargo.lockandbench/Cargo.lockregeneratedNot in this PR
The Rust toolchain pin is still 1.98.0; 1.98.1 is out and
toolchain-ab.ymlis measuring it now, per the procedure inrust-toolchain.toml. That is a separate change with its own measurement — this repo has seen a rustc minor move performance 15–96% (#120) — so it should not ride along with a release. If it measures clean and you want 0.10.0 built on it, merge that first and I will re-tag.