Skip to content

Write JSON strings by copying the Latin-1 array in one validate-and-copy pass - #1324

Merged
adwsingh merged 2 commits into
adwsingh/json-field-name-word-comparefrom
adwsingh/serde-perf
Aug 14, 2026
Merged

Write JSON strings by copying the Latin-1 array in one validate-and-copy pass#1324
adwsingh merged 2 commits into
adwsingh/json-field-name-word-comparefrom
adwsingh/serde-perf

Conversation

@adwsingh

@adwsingh adwsingh commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What behavior changes?

Compact ASCII strings are now validated and copied from their backing Latin-1 array in one pass. Other strings and unsupported runtimes keep the character-based fallback.

Why is this change needed?

This removes repeated charAt access from the common JSON string write path without requiring JVM flags.

How was this validated?

Added CompactStringAccess and JSON write tests, forced-fallback coverage, and JsonStringWriteBenchmark.

What should reviewers focus on?

The runtime access fallback, word-at-a-time validation, and partial-copy retry behavior.

Additional Links

Part of stack #1325.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@adwsingh
adwsingh force-pushed the adwsingh/serde-perf branch 2 times, most recently from 1073fd4 to fe55153 Compare August 14, 2026 11:19
@adwsingh
adwsingh force-pushed the adwsingh/serde-perf branch from fe55153 to 8a5bbb1 Compare August 14, 2026 12:28
@adwsingh
adwsingh force-pushed the adwsingh/serde-perf branch 2 times, most recently from bc2289e to 97b56d4 Compare August 14, 2026 13:27
@adwsingh
adwsingh force-pushed the adwsingh/serde-perf branch from 97b56d4 to 2f96b20 Compare August 14, 2026 13:50
@adwsingh
adwsingh force-pushed the adwsingh/serde-perf branch 2 times, most recently from e125374 to 5c79951 Compare August 14, 2026 15:48
@adwsingh
adwsingh force-pushed the adwsingh/serde-perf branch from 2a082da to e26682e Compare August 14, 2026 16:05
@adwsingh
adwsingh marked this pull request as ready for review August 14, 2026 16:06
@adwsingh
adwsingh requested a review from mtdowling August 14, 2026 16:11
@adwsingh
adwsingh merged commit 5ad1682 into main Aug 14, 2026
5 checks passed
@adwsingh
adwsingh deleted the adwsingh/serde-perf branch August 14, 2026 16:52
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