Skip to content

Conversation

@dduan
Copy link
Owner

@dduan dduan commented Feb 6, 2026

Replace hot lookup loops in Parser with @inline pointer scans over index lists and key-pair storage. Split keyed and unkeyed table lookup paths to avoid shared table extraction and route tableValue/lookupTable/lookupArray through the new match helpers.

Replace hot lookup loops in Parser with @inline pointer scans over index lists and key-pair storage. Split keyed and unkeyed table lookup paths to avoid shared table extraction and route tableValue/lookupTable/lookupArray through the new match helpers.
@dduan dduan enabled auto-merge (squash) February 6, 2026 08:27
@github-actions
Copy link

github-actions bot commented Feb 6, 2026

Comparing results between 'main' and 'pull_request'

Host 'runnervmwffz4' 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 66 68 68 68 69 77 135 9038
pull_request 67 68 68 69 70 78 114 9032
Δ 1 0 0 1 1 1 -21 -6
Improvement % -2 0 0 -1 -1 -1 16 -6

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

Retains * p0 p25 p50 p75 p90 p99 p100 Samples
main 597 597 597 598 598 598 598 9038
pull_request 596 596 596 597 597 597 597 9032
Δ -1 -1 -1 -1 -1 -1 -1 -6
Improvement % 0 0 0 0 0 0 0 -6

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 5013 5187 5235 5299 5395 8591 21757 10000
pull_request 5134 5323 5379 5447 5551 7131 37096 10000
Δ 121 136 144 148 156 -1460 15339 0
Improvement % -2 -3 -3 -3 -3 17 -71 0

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

Retains * p0 p25 p50 p75 p90 p99 p100 Samples
main 5 6 6 6 6 6 6 10000
pull_request 5 6 6 6 6 6 6 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 263 263 264 265 267 267 267 4
pull_request 259 259 260 260 260 260 260 4
Δ -4 -4 -4 -5 -7 -7 -7 0
Improvement % 2 2 2 2 3 3 3 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 8417 8454 8479 8503 8536 9134 9719 117
pull_request 8640 8684 8700 8724 8749 8978 9218 115
Δ 223 230 221 221 213 -156 -501 -2
Improvement % -3 -3 -3 -3 -2 2 5 -2

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 117
pull_request 66 66 66 66 66 66 66 115
Δ 0 0 0 0 0 0 0 -2
Improvement % 0 0 0 0 0 0 0 -2

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 155 155 156 157 159 159 159 7
pull_request 154 156 157 157 158 158 158 7
Δ -1 1 1 0 -1 -1 -1 0
Improvement % 1 -1 -1 0 1 1 1 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 7
pull_request 77 77 77 77 77 77 77 7
Δ 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 15 15 16 17 17 19 19 63
pull_request 15 16 16 17 17 19 19 62
Δ 0 1 0 0 0 0 0 -1
Improvement % 0 -7 0 0 0 0 0 -1

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

Retains * p0 p25 p50 p75 p90 p99 p100 Samples
main 129 130 130 130 130 130 130 63
pull_request 129 130 130 130 130 130 130 62
Δ 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 2354 2370 2376 2386 2394 2437 2834 414
pull_request 2354 2367 2374 2382 2392 2468 2784 414
Δ 0 -3 -2 -4 -2 31 -50 0
Improvement % 0 0 0 0 0 -1 2 0

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

Retains * p0 p25 p50 p75 p90 p99 p100 Samples
main 1289 1290 1290 1290 1290 1290 1290 414
pull_request 1289 1290 1290 1290 1290 1290 1290 414
Δ 0 0 0 0 0 0 0 0
Improvement % 0 0 0 0 0 0 0 0

@dduan dduan merged commit 21581be into main Feb 6, 2026
16 checks passed
@dduan dduan deleted the dd/specialize-lookup-scans-with-unsafe-buffers branch February 6, 2026 08:33
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.

1 participant