Those are the benchmarks linked to my talk, to run the benchmarks simply checkout this repo and launch run.sh, the only requirement is docker.
It will take some time, and prints only benchmark output data, like this:
Calculating -------------------------------------
ruby 940.605 (± 4.1%) i/s - 4.700k in 5.005957s
cached_method time: [128.52 µs 135.20 µs 142.91 µs]
change: [-7.6763% -2.6618% +2.6886%] (p = 0.33 > 0.05)
No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high mild
cached_method_trait time: [133.68 µs 144.82 µs 155.86 µs]
change: [-5.7364% -0.5558% +4.7331%] (p = 0.84 > 0.05)
No change in performance detected.
Found 15 outliers among 100 measurements (15.00%)
5 (5.00%) high mild
10 (10.00%) high severe
Output data has two different formats, so we'll need to do a little conversion, the easiest is to convert Ruby format into Rust format:
Convert iterations/second into microseconds/iteration
1000000/940.605 = 1063.1455 ± 4.1% => [1019,5566 µs 1063.1455 µs 1106.7345 µs]
Our Rust implementation is at least 8 times faster than Ruby on Rails, while the trait version is 10% slower due to allocations.