Chapter 14 · 13 July – 9 October

Against the reference compiler

Every released Raku++ binary up to v5.3.0, re-run on one machine, against the Rakudo that was current on each release's day. This is the fairest picture of how the speed moved. Each release's own benchmark table was measured on whatever machine it had, and for a while with Rakudo emulated.

How it was measuredThe released rakupp-macos-universal archive for each tag, checked against its published checksum, arm64 slice, on one Apple M3. Each kernel runs seven times; the first run is discarded and the fastest of the other six kept. Rakudo is built from source for each monthly release and assigned to Raku++ releases by date. The first sitting, on 31 August, timed every tag up to that day; six more on the same machine added each release after it, the last on 13 October. Then the M3 was out of reach, and an Apple M4 stood in (chapter 16). Its milliseconds are not the M3's, so these charts stop at v5.3.0, the last release the M3 timed. Hover any point for the release and its time.
fib: recursive calls.
loopsum: an integer loop.
streq: string comparison.
hash: hash reads and writes.
objects: construction and attributes.
regex: matching.
strcat: building a string.
startup: an empty program.

How to read them

The full table, with every kernel and the other engines, is on the dashboard.