aiken/benchmarks/README.md

11 KiB

(No Fib) Benchmarks

This folder contains a set of benchmarks inspired and ported from the plutus-benchmarks, written in Haskell. The idea is to provide benchmarks which can capture more realistic patterns and behaviours than usual "Fibonacci" benchmarks often used for benchmarking applications but falling short in capturing real-world scenarios.

Note that the primary use-case of those benchmarks is to compare Aiken with itself across compiler versions. As optimizations get implemented, it comes as a supplimentary means to assess their impact.

Summary

Results are summarized below, relatively to the previous version. For brevity, we only report versions for which there's a deviation from a previous version.

CPU

Benchmark v1.1.0 vs v1.0.29 vs v1.0.25 vs v1.0.23 vs v1.0.21
clausify_f1 16198154564 -24.99% -6.26% +11.71% +11.71%
clausify_f2 20169891270 -24.92% -6.07% +11.30% +11.30%
clausify_f3 53923018831 -24.91% -5.98% +11.17% +11.17%
clausify_f4 70014384566 -24.74% -5.01% +9.37% +9.37%
clausify_f5 262421671684 -25.00% -6.00% +11.24% +11.24%
knights_100_4x4 57037226471 -20.62% +1.40% +4.45% +4.30%
knights_100_6x6 137399466410 -14.00% +8.93% +11.92% +11.85%
knights_100_8x8 281418742606 -12.00% +11.40% +14.35% +14.32%

Mem

Benchmark v1.1.0 vs v1.0.29 vs v1.0.25 vs v1.0.23 vs v1.0.21
clausify_f1 53769377 ± 0.00% -2.29% +20.40% +20.40%
clausify_f2 67108683 ± 0.00% -2.54% +19.63% +19.63%
clausify_f3 179606857 ± 0.00% -2.64% +19.38% +19.38%
clausify_f4 231444137 ± 0.00% -2.75% +16.33% +16.33%
clausify_f5 874286879 ± 0.00% -2.63% +19.53% +19.53%
knights_100_4x4 172246681 -0.01% -0.48% +5.04% +4.90%
knights_100_6x6 321690197 -0.01% +10.08% +16.54% +16.46%
knights_100_8x8 601026745 -0.01% +14.48% +21.30% +21.26%