R7RS benchmarks for Gerbil v0.18 and Racket v8.10

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

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

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

NoteThis is not a d*ck swinging contest. I compiled these results to see how well we do in non-idiomatic, non-optimized, vanilla Scheme code and I want to be able to track progress with compiler improvements (there are plenty to come in Gerbil v0.19). Take them with a (big) grain of salt.

Note I've been asked why I don't include Chez in the benchmarks. This is simply because I don't trust languages who are not boostrapped with open source provenance. Racket's fork of Chez is, Dybvig Chez is not; see also The Gerbil Bootstrap.

Results

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

Benchmark ⋄⋄⋄Gerbil shared/safe ⋄⋄⋄Gerbil static/safe ⋄⋄⋄Gerbil shared/unsafe ⋄⋄⋄Gerbil static/unsafe ⋄⋄⋄Gerbil shared/unsafe/fpo ⋄⋄⋄Gerbil static/unsafe/fpo ⋄⋄⋄Racket
browse 1.177593 (+49.8%) 1.189406 (+51.3%) 1.042414 (+32.6%) 1.076639 (+37.%) .796936 (+1.4%) .785758 ↻ 1.826 (+132.3%)
deriv 2.004261 (+109.6%) 2.04079 (+113.4%) 1.994011 (+108.5%) 2.006049 (+109.8%) 1.024281 (+7.1%) .99355 (+3.9%) 0.956 ↻
destruc 2.418909 (+45.9%) 2.566311 (+54.8%) 1.907796 (+15.1%) 1.777189 (+7.2%) 1.657932 (+0.%) 1.656932 ↻ 2.237 (+35.%)
diviter 2.406134 (+58.9%) 2.457961 (+62.3%) 2.413634 (+59.4%) 2.420029 (+59.8%) 1.513779 ↻ 1.517906 (+.2%) 2.176 (+43.7%)
divrec 3.310734 (+68.%) 3.436995 (+74.5%) 2.935809 (+49.%) 2.910908 (+47.7%) 1.984917 (+.7%) 1.96954 ↻ 2.867 (+45.5%)
puzzle 2.670674 (+68.%) 2.646354 (+66.4%) 1.638169 (+3.%) 1.589469 ↻ 1.642399 (+3.3%) 1.658758 (+4.3%) 1.987 (+25.%)
triangl 1.816747 (+57.%) 1.917638 (+65.7%) 1.20054 (+3.7%) 1.156733 ↻ 1.160439 (+.3%) 1.454371 (+25.7%) 1.616 (+39.7%)
tak 1.323597 (+11.2%) 1.398808 (+17.5%) 1.423973 (+19.6%) 1.375421 (+15.5%) 1.23525 (+3.8%) 1.301701 (+9.3%) 1.19 ↻
takl 2.200456 (+96.%) 2.727037 (+142.9%) 1.145314 (+2.%) 1.122601 ↻ 1.373571 (+22.3%) 1.312003 (+16.8%) 3.05 (+171.6%)
ntakl 1.948655 (+78.7%) 2.257094 (+106.9%) 1.090454 ↻ 1.124215 (+3.%) 1.558087 (+42.8%) 1.56669 (+43.6%) 2.997 (+174.8%)
cpstak 5.295225 (+105.7%) 5.221523 (+102.9%) 5.357734 (+108.2%) 5.373495 (+108.8%) 2.727116 (+5.9%) 2.644588 (+2.7%) 2.573 ↻
ctak 2.207858 (+58.4%) 2.216394 (+59.1%) 2.154785 (+54.6%) 2.167758 (+55.6%) 1.539587 (+10.5%) 1.527646 (+9.6%) 1.393 ↻
fib 2.517633 (+38.1%) 2.784968 (+52.8%) 1.82251 ↻ 2.289006 (+25.5%) 3.446788 (+89.1%) 2.540783 (+39.4%) 2.464 (+35.1%)
fibc 1.416822 (+52.5%) 1.413022 (+52.1%) 1.32214 (+42.3%) 1.381736 (+48.7%) 1.067764 (+14.9%) 1.059126 (+14.%) 0.929 ↻
fibfp 1.59865 (+93.%) 1.617197 (+95.2%) 1.571944 (+89.7%) 1.566308 (+89.1%) .82822 ↻ .849167 (+2.5%) 1.937 (+133.8%)
sum 1.896988 (+12.4%) 1.862365 (+10.4%) 1.691372 (+.2%) 1.686426 ↻ 1.865357 (+10.6%) 1.877902 (+11.3%) 1.918 (+13.7%)
sumfp 2.927296 (+91.7%) 2.855325 (+86.9%) 2.807947 (+83.8%) 2.768214 (+81.2%) 1.526917 ↻ 1.547594 (+1.3%) 2.289 (+49.9%)
fft 1.894794 (+76.%) 1.918259 (+78.2%) 1.743516 (+61.9%) 1.773525 (+64.7%) 1.076308 ↻ 1.085122 (+.8%) 1.272 (+18.1%)
mbrot 3.907554 (+80.7%) 3.895808 (+80.1%) 3.898684 (+80.3%) 3.857791 (+78.4%) 2.193496 (+1.4%) 2.162133 ↻ 3.891 (+79.9%)
mbrotZ 9.165381 (+161.8%) 8.53371 (+143.8%) 8.64543 (+147.%) 8.072206 (+130.6%) 6.658746 (+90.2%) 6.638957 (+89.6%) 3.5 ↻
nucleic 1.699102 (+79.3%) 1.69384 (+78.7%) 1.337536 (+41.1%) 1.3567 (+43.1%) .947534 ↻ .956562 (+.9%) 1.365 (+44.%)
pi .677962 (+44.5%) .669509 (+42.7%) .685489 (+46.1%) .689728 (+47.%) .649141 (+38.4%) .651003 (+38.8%) 0.469 ↻
pnpoly 2.720025 (+59.9%) 2.710972 (+59.4%) 1.772297 (+4.2%) 1.786395 (+5.%) 1.700423 ↻ 1.716093 (+.9%) 3.325 (+95.5%)
ray 1.927884 (+105.7%) 1.912404 (+104.%) 1.42526 (+52.1%) 1.461094 (+55.9%) .936997 ↻ .938671 (+.1%) 2.849 (+204.%)
simplex 2.179622 (+134.%) 2.195469 (+135.7%) 1.186705 (+27.4%) 1.228948 (+31.9%) .931455 ↻ .939368 (+.8%) 1.63 (+74.9%)
ack 1.839796 (+1.5%) 1.821615 (+.5%) 1.812063 ↻ 1.872901 (+3.3%) 2.013087 (+11.%) 2.00138 (+10.4%) 2.046 (+12.9%)
array1 4.340836 (+36.%) 4.323144 (+35.4%) 3.339707 (+4.6%) 3.389995 (+6.2%) 3.19103 ↻ 3.195461 (+.1%) 6.062 (+89.9%)
string 2.792387 (+198.8%) 2.794778 (+199.%) 2.796204 (+199.2%) 2.794163 (+199.%) .944362 (+1.%) .934493 ↻ 1.637 (+75.1%)
sum1 .407814 (+31.1%) .404913 (+30.2%) .376965 (+21.2%) .372943 (+19.9%) .3227 (+3.7%) .310945 ↻ 9.146 (+2841.3%)
cat 1.320431 (+27.3%) 1.303888 (+25.7%) 1.045256 (+.8%) 1.036919 ↻ 1.048139 (+1.%) 1.046413 (+.9%) 3.606 (+247.7%)
tail 1.706663 (+11.8%) 1.722042 (+12.8%) 1.701771 (+11.4%) 1.717106 (+12.4%) 1.542297 (+1.%) 1.526462 ↻ 2.15 (+40.8%)
wc 1.356028 (+39.5%) 1.250772 (+28.6%) .971986 ↻ .995766 (+2.4%) 1.091369 (+12.2%) 1.081372 (+11.2%) 2.557 (+163.%)
read1 .826915 (+10.%) .800092 (+6.4%) .825449 (+9.8%) .801298 (+6.6%) .781547 (+3.9%) .751539 ↻ 9.768 (+1199.7%)
conform 2.533116 (+47.5%) 2.703339 (+57.4%) 1.903382 (+10.8%) 1.835986 (+6.9%) 1.757581 (+2.3%) 1.717183 ↻ 3.311 (+92.8%)
dynamic 3.762306 (+43.1%) 3.81998 (+45.3%) 3.539244 (+34.6%) 3.468323 (+31.9%) 2.778876 (+5.7%) 2.628898 ↻ 7.844 (+198.3%)
earley 3.006459 (+6.6%) 2.922956 (+3.6%) 2.819931 ↻ 2.880182 (+2.1%) 3.147632 (+11.6%) 3.13855 (+11.2%) 6.857 (+143.1%)
graphs 6.698502 (+266.6%) 6.58441 (+260.3%) 6.853401 (+275.1%) 6.744576 (+269.1%) 5.938881 (+225.%) 5.749392 (+214.6%) 1.827 ↻
lattice 3.691809 (+43.9%) 3.941794 (+53.6%) 2.942244 (+14.7%) 2.801647 (+9.2%) 3.01643 (+17.5%) 2.88945 (+12.6%) 2.565 ↻
matrix 1.759524 (+74.7%) 1.68764 (+67.5%) 1.517258 (+50.6%) 1.487517 (+47.7%) 1.130388 (+12.2%) 1.123807 (+11.5%) 1.007 ↻
maze .810185 (+35.2%) .771872 (+28.8%) .658469 (+9.9%) .656178 (+9.5%) .598878 ↻ .619785 (+3.4%) 0.698 (+16.5%)
mazefun 2.237359 (+35.2%) 2.141013 (+29.4%) 2.060638 (+24.5%) 2.08659 (+26.1%) 1.736419 (+4.9%) 1.653993 ↻ 1.929 (+16.6%)
nqueens 6.578422 (+47.%) 6.630963 (+48.1%) 6.083604 (+35.9%) 6.157948 (+37.6%) 5.487806 (+22.6%) 5.432058 (+21.3%) 4.475 ↻
paraffins 2.8615 (+9.3%) 2.770384 (+5.8%) 2.781842 (+6.2%) 2.853352 (+8.9%) 2.627384 (+.3%) 2.61788 ↻ 8.863 (+238.5%)
parsing 1.541824 (+10.6%) 1.518767 (+8.9%) 1.464091 (+5.%) 1.393662 ↻ 1.41668 (+1.6%) 1.409168 (+1.1%) 1.489 (+6.8%)
peval 1.958164 (+38.4%) 2.019916 (+42.7%) 1.704442 (+20.4%) 1.735006 (+22.6%) 1.421733 (+.5%) 1.414618 ↻ 1.626 (+14.9%)
primes .96164 (+88.3%) .971384 (+90.2%) .851169 (+66.6%) .834011 (+63.3%) .510947 (+0.%) .510637 ↻ 0.664 (+30.%)
quicksort 3.691028 (+22.6%) 3.53514 (+17.4%) 3.127215 (+3.9%) 3.092753 (+2.7%) 3.053944 (+1.4%) 3.009726 ↻ 7.651 (+154.2%)
scheme 2.761936 (+19.4%) 2.791303 (+20.6%) 2.368813 (+2.4%) 2.644372 (+14.3%) 2.437168 (+5.3%) 2.334286 (+.9%) 2.313 ↻
slatex 2.151685 (+19.3%) 2.116842 (+17.3%) 2.012988 (+11.6%) 1.976008 (+9.5%) 1.856375 (+2.9%) 1.803445 ↻ 5.975 (+231.3%)
chudnovsky .273067 (+31.9%) .271415 (+31.1%) .271121 (+30.9%) .267838 (+29.3%) .248334 (+19.9%) .247911 (+19.7%) 0.207 ↻
nboyer 2.321689 (+10.5%) 2.319034 (+10.3%) 2.100946 ↻ 2.12694 (+1.2%) 2.207415 (+5.%) 2.16183 (+2.8%) 3.387 (+61.2%)
sboyer 1.069247 (+45.8%) 1.128239 (+53.8%) .733202 ↻ .73414 (+.1%) .847356 (+15.5%) .849238 (+15.8%) 0.866 (+18.1%)
gcbench 1.919827 (+49.6%) 1.931406 (+50.5%) 1.312237 (+2.2%) 1.304922 (+1.6%) 1.283287 ↻ 1.336527 (+4.1%) 2.331 (+81.6%)
mperm 4.283696 (+7.4%) 4.176165 (+4.7%) 3.988523 ↻ 4.000643 (+.3%) 4.434276 (+11.1%) 4.458138 (+11.7%) 20.891 (+423.7%)
equal .231377 (+8.5%) .228244 (+7.%) .226817 (+6.3%) .236495 (+10.9%) .213186 ↻ .224409 (+5.2%) 1.551 (+627.5%)
bv2string .791287 (+15.4%) .791373 (+15.4%) .816 (+19.%) .787017 (+14.8%) .687448 (+.2%) .68544 ↻ 1.487 (+116.9%)