Skip to content

perf(mojo): vendor Ember/sonic 8-digit SWAR and two-digit itoa - #145

Merged
leo-gan merged 1 commit into
masterfrom
perf-research-1h
Sep 9, 2026
Merged

perf(mojo): vendor Ember/sonic 8-digit SWAR and two-digit itoa#145
leo-gan merged 1 commit into
masterfrom
perf-research-1h

Conversation

@leo-gan

@leo-gan leo-gan commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • Re-vendor gld-json fixes #9 (SWAR 8-digit parse, two-digit itoa, compact list commas)
  • Dest-reuse on the official writer was measured and dropped (extra memcpy)

Official all-single vs #144 (median skip warmup):

cell #144 deser now deser Ember vs Ember
message n=1 418 406 537 1.32×
telemetry n=1 2490 1678 1527 0.91×
telemetry n=100 238209 167450 148684 0.89×
strings n=1 2894 2264 1086 0.48×
strings n=100 301922 224586 102005 0.45×

Fidelity 1.0. Stem 2026-09-09-153729.

Validation

  • mojo test_roundtrip.mojo ok

Re-vendor gld-json #9. Telemetry n=1 deser 2490→1678 ns.
@leo-gan
leo-gan merged commit 1a9c9cf into master Sep 9, 2026
15 checks passed
leo-gan added a commit that referenced this pull request Sep 9, 2026
Vendor gld-json one-pass number parse, 4-digit SWAR, Ember ctz SIMD
scan, digit-pair itoa, and skip of the short-dtoa exact search. n=1
encode cap is 1024 so list ensure does not resize. Decode lists are
pre-sized to n.

Official 2026-09-09-160305 vs #145: telemetry n=1 deser 1678→1233
(1.35× Ember), n=100 167450→106745 (1.48×). Telemetry n=1 ser
2020→1319 (1.27×), n=100 195051→117007 (1.53×). Message n=1 deser
406→348 (1.55× Ember). Fidelity 1.0.

Version stays 0.2.0.
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