Skip to content

v2.4.0 — faster generated Dart and JavaScript

Choose a tag to compare

@gafferongames gafferongames released this 01 Sep 09:44
b63c22e

What you get

  • Generated Dart is 1.6x faster. Chunked write merges, chunked read windows, grouped element loops, and a bulk path for byte content. Regenerate and it's yours — no API change, no wire change.
  • Generated JavaScript is 1.5x faster (writes 1.9x). Wide values ride an allocation-free BigInt lane through scratch stores, small fields pack into single-word merges, and string/bytes bodies move four bytes at a time.
  • The performance table (README) reflects both, from one committed sweep: Dart at 225% and JavaScript at 318% of generated C++, alongside Rust 153%, Java 156%, Go 209%, C# 224%.
  • The batch planner counts honestly in C#: fixed-point, 128-bit, and mixed-arm union bodies no longer receive batch entries their delegation costs don't earn.
  • An absolute performance ledger guards the reference: every committed sweep joins a per-language time series (./bench/tools ledger), and CI fails if the C++ curve ever regresses beyond its noise gate — relative numbers can shuffle; the absolute curves cannot lie.

Wire bit-identical across all nine languages throughout, held by the golden corpus and differential review.