Skip to content

Conversation

@Weijun-H
Copy link
Member

@Weijun-H Weijun-H commented Jan 2, 2026

Which issue does this PR close?

  • Closes #NNN.

Rationale for this change

Improve JSON binary decoding performance by avoiding per-value allocations and enabling direct hex decoding into builders.

What changes are included in this PR?

Optimized binary hex decoding paths to reduce allocations and improve throughput.

decode_binary_hex_json  time:   [3.6780 ms 3.6953 ms 3.7150 ms]
                        change: [−61.051% −60.818% −60.565%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  5 (5.00%) high mild
  3 (3.00%) high severe

decode_fixed_binary_hex_json
                        time:   [4.0404 ms 4.1400 ms 4.2901 ms]
                        change: [−56.149% −55.040% −53.330%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 19 outliers among 100 measurements (19.00%)
  7 (7.00%) high mild
  12 (12.00%) high severe

decode_binary_view_hex_json
                        time:   [4.3731 ms 4.4242 ms 4.4767 ms]
                        change: [−53.305% −52.771% −52.239%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

Are these changes tested?

Yes

Are there any user-facing changes?

No

@github-actions github-actions bot added the arrow Changes to the arrow crate label Jan 2, 2026
@Weijun-H Weijun-H changed the title perf: optimize hex decoding in json perf: optimize hex decoding in json (1.8x faster in binary-heavy) Jan 2, 2026
@Weijun-H Weijun-H marked this pull request as ready for review January 2, 2026 16:44
@Weijun-H Weijun-H force-pushed the optimize-json-binary-parse branch from 6bd3a1c to 30f160e Compare January 5, 2026 08:40
@Weijun-H Weijun-H force-pushed the optimize-json-binary-parse branch from 30f160e to 4a6b5d4 Compare January 5, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow Changes to the arrow crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant