Skip to content

[in-progress] perf: continue SERDE hot-path optimizations - #358

Closed
jterapin wants to merge 28 commits into
mainfrom
serde-optimizations
Closed

[in-progress] perf: continue SERDE hot-path optimizations #358
jterapin wants to merge 28 commits into
mainfrom
serde-optimizations

Conversation

@jterapin

Copy link
Copy Markdown
Contributor

Summary

This PR continues the post-schema-extension serde follow-up work.

It tightens hot paths across the JSON/XML serde stack, reduces repeated lookup/object churn in builders and parsers, and keeps protocol-specific behavior aligned with schema metadata.

Changes

  • tighten JSON/XML serde hot paths in builder/parser flows
  • cache frequently used member and wire-name metadata on hot paths
  • avoid unnecessary coercion and helper indirection in union/structure handling
  • align parser lookups with schema metadata across JSON/CBOR paths
  • honor protocol default timestamp behavior when models leave the format at :default
  • add focused spec coverage for the affected serde paths

Notes

This is intentionally incremental follow-up work, not a new serde design phase. The goal is to keep the changes narrow while continuing to improve runtime behavior and cleanup after the schema-extension work.

Validation

  • bundle exec rake smithy-client:spec
  • focused serde specs for updated JSON/XML paths

@jterapin jterapin changed the title [in-progress] ]perf: continue serde hot-path optimizations [in-progress] perf: continue SERDE hot-path optimizations Aug 31, 2026
@jterapin
jterapin force-pushed the serde-optimizations branch 2 times, most recently from 418b418 to 8ce763b Compare September 2, 2026 17:12
- reuse Builder and Parser instances within Json::Codec
- cache list/map member shape lookups in builder and parser hot paths
- simplify jsonName memoization in Json::Extension
- return nil for top-level JSON null payloads and cover it in parser specs
@jterapin
jterapin force-pushed the serde-optimizations branch from 771deb0 to e442a1c Compare September 3, 2026 18:10
@jterapin
jterapin force-pushed the serde-optimizations branch from e442a1c to 4c0a610 Compare September 3, 2026 18:19
@jterapin

jterapin commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Closing in favor of the stack prs.

@jterapin jterapin closed this Sep 3, 2026
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.

1 participant