mirror of
https://github.com/simdjson/simdjson
synced 2026-06-08 17:27:07 +00:00
0a694273e2
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>