Skip to content

Conversation

@dduan
Copy link
Owner

@dduan dduan commented Jan 2, 2026

Replace String.hashValue with a lightweight FNV-1a hash for key
prefiltering to reduce hashing overhead during parse and table lookups.

Replace String.hashValue with a lightweight FNV-1a hash for key
prefiltering to reduce hashing overhead during parse and table lookups.
@dduan dduan enabled auto-merge (squash) January 2, 2026 08:11
@github-actions
Copy link

github-actions bot commented Jan 2, 2026

Comparing results between 'main' and 'pull_request'

Host 'runnervmh13bl' with 4 'x86_64' processors with 15 GB memory, running:
#18~24.04.1-Ubuntu SMP Sat Jun 28 04:46:03 UTC 2025

TOMLDecoderBenchmarks

Decode toml.io example metrics

Time (wall clock): results within specified thresholds, fold down for details.

Time (wall clock) (μs) * p0 p25 p50 p75 p90 p99 p100 Samples
main 70 71 71 72 75 89 132 7016
pull_request 67 68 68 69 73 88 148 7161
Δ -3 -3 -3 -3 -2 -1 16 145
Improvement % 4 4 4 4 3 1 -12 145

Retains: results within specified thresholds, fold down for details.

Retains * p0 p25 p50 p75 p90 p99 p100 Samples
main 626 626 626 627 627 627 627 7016
pull_request 626 626 626 626 626 626 626 7161
Δ 0 0 0 -1 -1 -1 -1 145
Improvement % 0 0 0 0 0 0 0 145

Parse toml.io example metrics

Time (wall clock): results within specified thresholds, fold down for details.

Time (wall clock) (ns) * p0 p25 p50 p75 p90 p99 p100 Samples
main 6592 6755 6795 6855 6935 10751 31529 10000
pull_request 6221 6363 6403 6463 6543 9527 26440 10000
Δ -371 -392 -392 -392 -392 -1224 -5089 0
Improvement % 6 6 6 6 6 11 16 0

Retains: results within specified thresholds, fold down for details.

Retains * p0 p25 p50 p75 p90 p99 p100 Samples
main 9 10 10 10 10 10 10 10000
pull_request 9 10 10 10 10 10 10 10000
Δ 0 0 0 0 0 0 0 0
Improvement % 0 0 0 0 0 0 0 0

decode canada.toml metrics

Time (wall clock): results within specified thresholds, fold down for details.

Time (wall clock) (ms) * p0 p25 p50 p75 p90 p99 p100 Samples
main 270 270 270 271 271 271 271 4
pull_request 262 262 263 265 265 265 265 4
Δ -8 -8 -7 -6 -6 -6 -6 0
Improvement % 3 3 3 2 2 2 2 0

Retains: results within specified thresholds, fold down for details.

Retains (K) * p0 p25 p50 p75 p90 p99 p100 Samples
main 1674 1674 1674 1674 1674 1674 1674 4
pull_request 1674 1674 1674 1674 1674 1674 1674 4
Δ 0 0 0 0 0 0 0 0
Improvement % 0 0 0 0 0 0 0 0

decode twitter.toml metrics

Time (wall clock): results within specified thresholds, fold down for details.

Time (wall clock) (μs) * p0 p25 p50 p75 p90 p99 p100 Samples
main 9420 9486 9503 9535 9585 9806 9979 105
pull_request 8883 8937 8954 8995 9044 9462 10056 111
Δ -537 -549 -549 -540 -541 -344 77 6
Improvement % 6 6 6 6 6 4 -1 6

Retains: results within specified thresholds, fold down for details.

Retains (K) * p0 p25 p50 p75 p90 p99 p100 Samples
main 66 66 66 66 66 66 66 105
pull_request 66 66 66 66 66 66 66 111
Δ 0 0 0 0 0 0 0 6
Improvement % 0 0 0 0 0 0 0 6

parse GitHub events archive metrics

Time (wall clock): results within specified thresholds, fold down for details.

Time (wall clock) (ms) * p0 p25 p50 p75 p90 p99 p100 Samples
main 178 178 179 180 180 180 180 6
pull_request 165 165 166 170 171 171 171 6
Δ -13 -13 -13 -10 -9 -9 -9 0
Improvement % 7 7 7 6 5 5 5 0

Retains: results within specified thresholds, fold down for details.

Retains (K) * p0 p25 p50 p75 p90 p99 p100 Samples
main 77 77 77 77 77 77 77 6
pull_request 77 77 77 77 77 77 77 6
Δ 0 0 0 0 0 0 0 0
Improvement % 0 0 0 0 0 0 0 0

parse canada.toml metrics

Time (wall clock): results within specified thresholds, fold down for details.

Time (wall clock) (ms) * p0 p25 p50 p75 p90 p99 p100 Samples
main 16 17 18 18 18 19 19 57
pull_request 16 17 17 18 18 19 19 58
Δ 0 0 -1 0 0 0 0 1
Improvement % 0 0 6 0 0 0 0 1

Retains: results within specified thresholds, fold down for details.

Retains * p0 p25 p50 p75 p90 p99 p100 Samples
main 133 134 134 134 134 134 134 57
pull_request 133 134 134 134 134 134 134 58
Δ 0 0 0 0 0 0 0 1
Improvement % 0 0 0 0 0 0 0 1

parse twitter.toml metrics

Time (wall clock): results within specified thresholds, fold down for details.

Time (wall clock) (μs) * p0 p25 p50 p75 p90 p99 p100 Samples
main 2927 2966 2980 2992 3006 3289 3481 330
pull_request 2734 2755 2763 2773 2798 2916 3813 354
Δ -193 -211 -217 -219 -208 -373 332 24
Improvement % 7 7 7 7 7 11 -10 24

Retains: results within specified thresholds, fold down for details.

Retains * p0 p25 p50 p75 p90 p99 p100 Samples
main 1293 1294 1294 1294 1294 1294 1294 330
pull_request 1293 1294 1294 1294 1294 1294 1294 354
Δ 0 0 0 0 0 0 0 24
Improvement % 0 0 0 0 0 0 0 24

@dduan dduan merged commit f4bc2e1 into main Jan 2, 2026
16 checks passed
@dduan dduan deleted the dd/use-fast-key-hash-for-parsing branch January 2, 2026 08:15
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.

2 participants