[codex] Compact array and map decoding stacks#366
Conversation
|
Updated benchmark/design notes after removing the narrow The implementation now follows the parser-state ideas from msgpax and Benchmarked current branch ( Original collection benchmark:
Additional fixed-width array benchmark:
Length-prefix-only streaming results:
The sub-microsecond continuation timings have high deviation, so the important signal there is allocation shape: continuation state is constant-size instead of proportional to collection length. The complete decode numbers are the key guardrail: this version is no longer buying a streaming-only win by regressing full scalar arrays. A larger follow-up could rework all RowBinary decoding around explicit continuation frames, like |
229042e to
03c6cdf
Compare
03c6cdf to
b3924d8
Compare
Summary
Compact RowBinary array and map decoding by using accumulator frames with remaining counters instead of expanding every element type onto the decode stack.
This keeps large arrays and maps from inflating continuation state while preserving nested decoding behavior.
Added regression tests that assert large array and map continuations remain compact.
Validation