Skip to content

v3.4.1

Latest

Choose a tag to compare

@MarshalX MarshalX released this 27 May 17:31
· 1 commit to main since this release
7361420

What's Changed

This is a focused decode-side optimization. The numbers below come from pytest-benchmark on Apple M1 / CPython 3.14 (PGO-built wheels), comparing v3.4.0 → v3.4.1 head-to-head.

⚡ Decode (DAG-CBOR)

Fixture v3.4.0 v3.4.1 Speedup
canada 4.75 ms 4.43 ms 1.07x (+7%)
github 69 µs 66 µs 1.05x (+5%)
twitter 790 µs 766 µs 1.03x (+3%)
citm_catalog 1.79 ms 1.77 ms 1.01x (+1%)

The decoder used to fetch the Python recursion limit on every recursive step. We now read it once per top-level decode call and pass it through, closing the last decode gap with cbrrr (we're within 0.7% of it on canada and 30–40% ahead on the others).

🔧 Optimizations

  • Optimize DAG-CBOR decode by reading Py_GetRecursionLimit once per call by @MarshalX in #NNN

Deserialization v3.4.0 → v3.4.1

image

Serialization v3.4.0 → v3.4.1

image

Full Changelog: v3.4.0...v3.4.1