Repository navigation
Avoid eager error allocation when parsing named tuples - #738
Merged
liuzicheng1987 merged 2 commits intoOct 14, 2026
Merged
liuzicheng1987 merged 2 commits into
liuzicheng1987 merged 2 commits into
Conversation
Altren
force-pushed
the
perf/lazy-error-allocation
branch
from
October 14, 2026 10:03
cbc3661 to
dd78450
Compare
Contributor
Author
|
FYI. I'm trying to make reflect-cpp work as fast as native Cereal serialization does, in my production case it is 2x slower for write and 3x slower for read. |
Collaborator
|
@Altren, great. Thank for this. I am merging. |
liuzicheng1987
merged commit Oct 14, 2026
ed67735
into
munich-data-engineering:main
176 checks passed
This was referenced Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Allocate error-vector storage only when parsing encounters an error, in both regular and default-value parsing.
Add Point2d vector read benchmarks to the all-format target and CI summaries. Cover 1,000 and 1,000,000 points in JSON, Cereal, MessagePack, and YAS, with serialized size and applicable default-value and positional parsing variants.
Validated all 20 new benchmark cases and the existing JSON tests; local before/after runs show lower read times with unchanged serialized sizes.
For one million Point2d records, the read speedups on my M4 mac were:
1.38x Cereal
1.65x YAS
1.44x MessagePack (with NoFieldNames)