Files
simdjson-simdjson/include
Francisco Geiman Thiesen 0a694273e2 WIP: builder follow-up — inline remaining atoms + skip strlen on keys
Three small follow-ups on top of #2707, all aimed at closing the
remaining CITM gap:

  1. simdjson_really_inline on atom<map>, atom<smart_pointer>,
     atom<enum>. The previous PR missed these three. atom<map> in
     particular was visible at ~11% of CITM profile time before this
     change (CITM has events: std::map<string, CITMEvent>).

  2. struct atom passes the key size explicitly to append_raw(c, len)
     instead of going through append_raw(const char*) which calls
     std::strlen on every key (8 fields × 184 events on CITM).

  3. append_raw(const char*) uses std::char_traits<char>::length
     (constexpr) instead of std::strlen so the compiler can fold the
     length when the pointer is to a compile-time string.

Measured (TRUE A/B, 7 alternating rounds in single docker invocation):
  CITM:    baseline 4437 -> patched 4686 MB/s  (+5.6%)
  Twitter: within noise

Output is byte-identical to baseline. All static_reflection_comprehensive_tests
pass.

WIP — pushing for safekeeping while continuing to investigate the
remaining ~5% gap to Glaze on CITM. Not ready for PR yet.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 15:34:00 -07:00
..