Skip to content

Feat/cs/perf++#17

Merged
ReagentX merged 6 commits into
developfrom
feat/cs/perf++
May 29, 2026
Merged

Feat/cs/perf++#17
ReagentX merged 6 commits into
developfrom
feat/cs/perf++

Conversation

@ReagentX

@ReagentX ReagentX commented May 29, 2026

Copy link
Copy Markdown
Owner
  • Memory layout:
    • Type table Vec<Vec<Type>>Vec<TypeEntry>
    • Archived::Object.data Vec<Vec<OutputData>>ObjectData
    • The common single-type / single-value case is stored inline with no Vec allocation
    • Type now derives Copy
  • Lazy property groups: Property::Group wraps a PropertyGroup that resolves items on demand (yielded by value) instead of materializing a Vec<Property> per group.
  • Decode refactor: new Group enum (Empty/One/Many) threads the inline single-value path through read_types; split into read_value / read_embedded; each Type is fetched once and passed by value (no repeated type-table re-indexing).
  • Iterative parsing: read_signed_int / read_unsigned_int reference-tag skipping is now a loop instead of recursion.
  • Allocation tuning: table capacity is reserved after header validation (not in new) and right-sized to measured density, so malformed/oversized buffers no longer pre-allocate.
  • Behavior change: object references that don't resolve during iteration now surface as Property::Primitive rather than being silently dropped (reachable only on malformed streams).

@ReagentX ReagentX self-assigned this May 29, 2026
@ReagentX ReagentX added the enhancement New feature or request label May 29, 2026
@ReagentX ReagentX moved this to In Progress in 4.2: Stream Orchid May 29, 2026
@ReagentX ReagentX merged commit c2aac85 into develop May 29, 2026
1 check passed
@ReagentX ReagentX deleted the feat/cs/perf++ branch May 29, 2026 22:51
@ReagentX ReagentX moved this from In Progress to Done in 4.2: Stream Orchid May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Development

Successfully merging this pull request may close these issues.

1 participant