R7RS benchmarks for Gerbil

These are the results for Gerbil v0.18.2-pre (pre-release of v0.18.2), Gambit v4.9.5-130 (same as the Gerbil pin), and Racket v8.12.

This is based on ecraven's benchmarks, which seem unmaintained.

The benchmarks were run on a Dell XPS 13-9320 laptop.

Each benchmark was run 3 times, and I kept the best value.

Gerbil Variants

Notes

Benchmark Modifications

There have been some modifications in the source relative to ecraven's benchmarks. Specifically:

The conform, maze and ray benchmarks have been modified to use records defined with define-record-type instead of vectors.

R7RS has record types for a reason and it is completely unreasonable to use vectors instead of records in the year 2024..

Results

Color Coding: best within 10% within 10-25% within 25-50% within 50-100% within 100-200% over 200%

Benchmark ⋄⋄⋄Gerbil R7RS safe ⋄⋄⋄Gerbil R7RS unsafe ⋄⋄⋄Gerbil idiomatic ⋄⋄⋄Gambit safe ⋄⋄⋄Racket R7RS
browse .895272 (+37.3%) .749277 (+14.9%) .651944 ↻ .902322 (+38.4%) 1.794 (+175.1%)
deriv 1.208174 (+5.7%) 1.182414 (+3.4%) 1.178738 (+3.1%) 1.209399 (+5.8%) 1.143 ↻
destruc 1.993492 (+40.7%) 1.668991 (+17.8%) 1.416508 ↻ 1.975186 (+39.4%) 2.269 (+60.1%)
diviter 1.507604 (+3.8%) 1.452258 ↻ (no program) 1.478105 (+1.7%) 1.856 (+27.8%)
divrec 2.307236 (+6.8%) 2.159228 ↻ (no program) 2.300408 (+6.5%) 2.636 (+22.%)
puzzle 2.710697 (+151.9%) 1.580869 (+46.9%) 1.075914 ↻ 2.844917 (+164.4%) 1.969 (+83.%)
triangl 1.880691 (+86.2%) 1.161817 (+15.%) 1.009914 ↻ 1.91303 (+89.4%) 1.61 (+59.4%)
tak 1.176307 (+33.6%) 1.379905 (+56.7%) .880359 ↻ 1.299402 (+47.5%) 1.012 (+14.9%)
takl 1.587941 (+47.%) 1.115643 (+3.2%) 1.080078 ↻ 1.597305 (+47.8%) 3.018 (+179.4%)
ntakl 1.562952 (+40.7%) 1.110204 ↻ (no program) 1.605096 (+44.5%) 3.068 (+176.3%)
cpstak 3.191026 (+29.5%) 3.114418 (+26.3%) 2.464085 ↻ 3.066803 (+24.4%) 2.596 (+5.3%)
ctak 1.444491 (+2.1%) 1.51986 (+7.4%) 1.413866 ↻ 1.550393 (+9.6%) 1.423 (+.6%)
fib 2.17808 (+14.6%) 2.306984 (+21.4%) (no program) 1.899826 ↻ 2.623 (+38.%)
fibc 1.031808 (+7.8%) 1.016992 (+6.2%) (no program) 1.06678 (+11.4%) 0.957 ↻
fibfp 1.047403 (+.8%) 1.038667 ↻ (no program) 1.078556 (+3.8%) 1.93 (+85.8%)
sum 1.697125 (+0.%) 1.696565 ↻ (no program) 1.698843 (+.1%) 2.049 (+20.7%)
sumfp 1.68882 ↻ 1.767821 (+4.6%) (no program) 1.732409 (+2.5%) 2.281 (+35.%)
fft .852732 (+248.1%) .710904 (+190.2%) .24491 ↻ .843716 (+244.5%) 1.252 (+411.2%)
mbrot 2.214566 (+94.5%) 2.180498 (+91.5%) 1.138062 ↻ 2.223844 (+95.4%) 3.679 (+223.2%)
mbrotZ 6.449705 (+265.7%) 5.732755 (+225.1%) 1.763186 ↻ 6.072199 (+244.3%) 3.438 (+94.9%)
nucleic 1.255572 (+40.4%) .894206 ↻ (no program) 1.317982 (+47.3%) 1.4 (+56.5%)
pi .608658 (+34.3%) .61041 (+34.7%) (no program) .607325 (+34.%) 0.453 ↻
pnpoly 2.161187 (+53.7%) 1.405699 ↻ (no program) 2.170967 (+54.4%) 3.332 (+137.%)
ray 1.197922 (+219.2%) .914911 (+143.8%) .37524 ↻ 1.130326 (+201.2%) 7.587 (+1921.9%)
simplex 1.597749 (+76.9%) .903149 ↻ (no program) 1.51373 (+67.6%) 1.617 (+79.%)
ack 1.908582 (+6.5%) 1.84817 (+3.2%) (no program) 1.790684 ↻ 1.996 (+11.4%)
array1 2.403578 (+64.6%) 1.45974 ↻ (no program) 2.333333 (+59.8%) 6.026 (+312.8%)
string .970312 (+1.6%) .954131 ↻ (no program) .996953 (+4.4%) 1.559 (+63.3%)
sum1 .361556 (+13.5%) .318485 ↻ (no program) .355546 (+11.6%) 9.36 (+2838.9%)
cat 1.313482 (+24.7%) 1.053087 ↻ (no program) 1.331804 (+26.4%) 3.63 (+244.7%)
tail 1.530952 ↻ 1.540101 (+.5%) (no program) 1.572151 (+2.6%) 2.157 (+40.8%)
wc 1.185415 (+37.3%) .986351 (+14.2%) .863069 ↻ 1.203652 (+39.4%) 2.617 (+203.2%)
read1 .77623 (+1.7%) .783441 (+2.6%) (no program) .763071 ↻ 9.705 (+1171.8%)
conform 1.51447 (+20.6%) 1.255691 ↻ (no program) 1.770718 (+41.%) 7.205 (+473.7%)
dynamic 2.667366 (+10.5%) 2.413654 ↻ (no program) 2.765762 (+14.5%) 8.025 (+232.4%)
earley 2.795528 (+2.5%) 2.726026 ↻ (no program) 2.859218 (+4.8%) 6.862 (+151.7%)
graphs 4.843321 (+193.8%) 4.509785 (+173.6%) 1.647979 ↻ 4.82012 (+192.4%) 1.817 (+10.2%)
lattice 3.404958 (+66.3%) 2.722365 (+32.9%) 2.04733 ↻ 3.44717 (+68.3%) 2.537 (+23.9%)
matrix 1.321673 (+36.3%) 1.132558 (+16.8%) .969287 ↻ 1.30743 (+34.8%) 0.991 (+2.2%)
maze .683375 (+14.4%) .597191 ↻ (no program) .653986 (+9.5%) 2.11 (+253.3%)
mazefun 1.965208 (+29.3%) 1.51882 ↻ (no program) 1.743225 (+14.7%) 1.993 (+31.2%)
nqueens 5.818397 (+36.8%) 5.387034 (+26.6%) 4.252204 ↻ 5.901721 (+38.7%) 4.459 (+4.8%)
paraffins 2.566593 ↻ 2.705443 (+5.4%) (no program) 2.879662 (+12.1%) 8.898 (+246.6%)
parsing 1.494598 (+7.9%) 1.385074 ↻ (no program) 1.490819 (+7.6%) 1.476 (+6.5%)
peval 1.618721 (+16.1%) 1.393667 ↻ (no program) 1.665395 (+19.4%) 1.607 (+15.3%)
primes .661144 (+16.1%) .569442 ↻ (no program) .663323 (+16.4%) 0.665 (+16.7%)
quicksort 3.68697 (+31.8%) 2.963969 (+6.%) 2.795854 ↻ 3.635736 (+30.%) 7.74 (+176.8%)
scheme 2.87649 (+20.3%) 2.411425 (+.8%) (no program) 2.664598 (+11.4%) 2.39 ↻
slatex 2.14022 (+7.1%) 1.997593 ↻ (no program) 2.133455 (+6.8%) 5.936 (+197.1%)
chudnovsky .244475 (+24.%) .240932 (+22.3%) (no program) .245553 (+24.6%) 0.197 ↻
nboyer 2.270697 (+7.8%) 2.106296 ↻ (no program) 2.32705 (+10.4%) 3.297 (+56.5%)
sboyer .921842 (+23.5%) .746092 ↻ (no program) .96212 (+28.9%) 0.852 (+14.1%)
gcbench 1.336526 (+1.8%) 1.312078 ↻ (no program) 5.234919 (+298.9%) 2.296 (+74.9%)
mperm 4.319952 (+3.9%) 4.156262 ↻ (no program) 4.271193 (+2.7%) 20.294 (+388.2%)
equal .238156 (+.9%) .239293 (+1.3%) (no program) .235997 ↻ 1.592 (+574.5%)
bv2string 1.000905 (+6.2%) .942103 ↻ (no program) 1.144078 (+21.4%) 1.471 (+56.1%)