[ruby/json] Micro-optimize rstring_cache_fetch
rstring_cache_fetch
Closes: https://github.com/ruby/json/pull/888
inline
RSTRING_GETMEM
RSTRING_LEN
RSTRING_PTR
memcmp
== Parsing activitypub.json (58160 bytes) ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24] Comparison: before: 11766.6 i/s after: 12272.1 i/s - 1.04x faster == Parsing twitter.json (567916 bytes) ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24] Comparison: before: 1333.2 i/s after: 1422.0 i/s - 1.07x faster == Parsing citm_catalog.json (1727030 bytes) ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24] Comparison: before: 656.3 i/s after: 673.1 i/s - 1.03x faster == Parsing float parsing (2251051 bytes) ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24] Comparison: before: 276.8 i/s after: 276.4 i/s - same-ish: difference falls within error
https://github.com/ruby/json/commit/a67d1a1af4
Co-Authored-By: Scott Myron samyron@gmail.com
[ruby/json] Micro-optimize
rstring_cache_fetchCloses: https://github.com/ruby/json/pull/888
inline.RSTRING_GETMEM, instead ofRSTRING_LENandRSTRING_PTR.memcmp.https://github.com/ruby/json/commit/a67d1a1af4
Co-Authored-By: Scott Myron samyron@gmail.com