The results of a benchmark are still not fully conclusive: regular Guile seems to be slightly slower in the Geometric mean of all tests, but there are benchmarks where a tuned Guile is slower. Note that this is tuning for znver3 while I actually have znver4, but support for the correct compile-target will only arrive with GCC 13. To replicate the benchmarks: echo guix pull --disable-authentication --allow-downgrades -u … # get the new packages guix shell mercurial -- hg clone https://hg.sr.ht/~arnebab/wisp guix shell git -- git clone https://github.com/ecraven/r7rs-benchmarks cd r7rs-benchmarks for N in {1..3}; do guix shell --tune guile@3.0.9t -- ./bench guile all && mv results.Guile{,-tuned${N}} guix shell guile@3.0.9 -- ./bench guile all && mv results.Guile{,-regular${N}} sed -i 's/\+guile/+guiletuned/' results.Guile-tuned${N} sed -i 's/\+guile/+guileregular/' results.Guile-regular${N} done grep -a -h '+!CSVLINE' results.Guile-{regular,tuned}* | sed 's/+!CSVLINE!+//' > all.csv guix shell guile-wisp guile -- ../wisp/examples/evaluate-r7rs-benchmark.w ~/eigenes/Programme/r7rs-benchmarks/all.csv guiletuned guix shell guile-wisp guile -- ../wisp/examples/evaluate-r7rs-benchmark.w ~/eigenes/Programme/r7rs-benchmarks/all.csv guileregular My results with N in {1..2}, the Geometric mean: Guile tuned has a slowdown of 1.03512801239189 Guile regular has a slowdown of 1.0504373210343294 This suggests that the regular Guile is 1.48% slower than tuned Guile. Since I have no errorbars, I cannot say whether this is significant. === Guiletuned slowdown === (("bv2string:1000:1000:100" . 1.0) ("equal" . #f) ("mperm:20:10:2:1" . 1.146669471586088) ("gcbench:20:1" . 1.0197445340007967) ("sboyer:5:1" . 1.0398502157522214) ("nboyer:5:1" . 1.050828554948064) ("chudnovsky:50:500:50:1000" . 1.0236854348323314) ("slatex:500" . 1.0063944149759714) ("scheme:100000" . 1.0689169431069399) ("quicksort:10000:2500" . 1.003088477529797) ("primes:1000:10000" . 1.041839283639136) ("peval:2000" . 1.0560148767561295) ("parsing:2500" . 1.0003564615141731) ("paraffins:23:10" . 2.0039145601078086) ("nqueens:13:10" . 1.0) ("mazefun:11:11:10000" . 1.034627134692567) ("maze:20:7:10000" . 1.001234149986604) ("matrix:5:5:2500" . 1.047237971262676) ("lattice:44:10" . 1.003284878892407) ("graphs:7:3" . 1.101724767552233) ("earley:1" . 1.0507663201957202) ("dynamic:500" . 1.0806476338778386) ("conform:500" . 1.0) ("compiler:2000" . 1.0973709486022507) ("read1:2500" . 1.0) ("wc:inputs/bib:50" . 1.0252716381981584) ("tail:50" . 1.070013760352806) ("cat:50" . 1.1006490143447183) ("sum1:25" . 1.0) ("string:500000:100" . 1.005448377967908) ("array1:1000000:500" . 1.017108880809611) ("ack:3:12:2" . 1.0343152722188402) ("simplex:1000000" . 1.0213054034897673) ("ray:50" . 1.0090968950973398) ("pnpoly:1000000" . 1.0091804774033606) ("pi:50:500:50:100" . 1.0) ("nucleic:50" . 1.0173803271423734) ("mbrotZ:75:1000" . 1.022665128035874) ("mbrot:75:1000" . 1.0) ("fft:65536:100" . 1.0) ("sumfp:1000000.0:500" . 1.0) ("sum:10000:200000" . 1.0028978038917624) ("fibfp:35.0:10" . 1.029590065926432) ("fibc:30:10" . 1.0072040559671238) ("fib:40:5" . 1.0023503962392322) ("ctak:27:16:8:1" . 1.0) ("cpstak:40:20:11:1" . 1.0) ("ntakl:40:20:12:1" . 1.046107228813898) ("takl:40:20:12:1" . 1.0327425092626041) ("tak:40:20:11:1" . 1.0) ("triangl:22:1:50" . 1.0143942222863194) ("puzzle:1000" . 1.2229189054254013) ("divrec:1000:1000000" . 1.0074179348861916) ("diviter:1000:1000000" . 1.043931078583493) ("destruc:600:50:4000" . 1.0240507947888393) ("deriv:10000000" . 1.0319784815172544) ("browse:2000" . 1.1070660842252487) ("bv2string:1000:1000:100" . 1.0338536673222782) ("equal" . #f) ("mperm:20:10:2:1" . 1.1881732405136267) ("gcbench:20:1" . 1.0) ("sboyer:5:1" . 1.0631408998092902) ("nboyer:5:1" . 1.0217971951625024) ("chudnovsky:50:500:50:1000" . 1.0) ("slatex:500" . 1.0) ("scheme:100000" . 1.0) ("quicksort:10000:2500" . 1.0543263325575605) ("primes:1000:10000" . 1.0067412573033894) ("peval:2000" . 1.0) ("parsing:2500" . 1.0) ("paraffins:23:10" . 1.0) ("nqueens:13:10" . 1.0176605905015021) ("mazefun:11:11:10000" . 1.037746391910457) ("maze:20:7:10000" . 1.0) ("matrix:5:5:2500" . 1.0200605013910409) ("lattice:44:10" . 1.0102542438570286) ("graphs:7:3" . 1.0384572473968816) ("earley:1" . 1.0) ("dynamic:500" . 1.0) ("conform:500" . 1.0091118513899833) ("compiler:2000" . 1.0) ("read1:2500" . 1.0599058441532945) ("wc:inputs/bib:50" . 1.0746142263219225) ("tail:50" . 1.0632740266035832) ("cat:50" . 1.0929665813153533) ("sum1:25" . 1.036061672363642) ("string:500000:100" . 1.0162155078942512) ("array1:1000000:500" . 1.0515376902103308) ("ack:3:12:2" . 1.0118706763775067) ("simplex:1000000" . 1.0164588830600216) ("ray:50" . 1.0) ("pnpoly:1000000" . 1.0) ("pi:50:500:50:100" . 1.045459192674658) ("nucleic:50" . 1.0017484672084827) ("mbrotZ:75:1000" . 1.0) ("mbrot:75:1000" . 1.0311423294990856) ("fft:65536:100" . 1.0504466238403414) ("sumfp:1000000.0:500" . 1.0091469248322233) ("sum:10000:200000" . 1.0) ("fibfp:35.0:10" . 1.0) ("fibc:30:10" . 1.1257119803649067) ("fib:40:5" . 1.0) ("ctak:27:16:8:1" . 1.0148864364373957) ("cpstak:40:20:11:1" . 1.011283388260497) ("ntakl:40:20:12:1" . 1.0) ("takl:40:20:12:1" . 1.007232975497366) ("tak:40:20:11:1" . 1.0362220583744437) ("triangl:22:1:50" . 1.022212297184504) ("puzzle:1000" . 1.2350889918747268) ("divrec:1000:1000000" . 1.0064081034755894) ("diviter:1000:1000000" . 1.0) ("destruc:600:50:4000" . 1.0) ("deriv:10000000" . 1.0061506030191765) ("browse:2000" . 1.0065279614595284)) === Guiletuned Geometric Mean slowdown (successful tests / total tests) === 1.03512801239189 (112 / 114) === Guileregular slowdown === (("bv2string:1000:1000:100" . 1.0674803047626884) ("equal" . #f) ("mperm:20:10:2:1" . 1.094739035540671) ("gcbench:20:1" . 1.0172414374269374) ("sboyer:5:1" . 1.0) ("nboyer:5:1" . 1.0) ("chudnovsky:50:500:50:1000" . 1.1734845659670659) ("slatex:500" . 1.0239374916619306) ("scheme:100000" . 1.122700507430036) ("quicksort:10000:2500" . 1.0) ("primes:1000:10000" . 1.0) ("peval:2000" . 1.0088858652748092) ("parsing:2500" . 1.0418903162390507) ("paraffins:23:10" . 2.042048452193248) ("nqueens:13:10" . 1.0100153261373226) ("mazefun:11:11:10000" . 1.0) ("maze:20:7:10000" . 1.048959091743095) ("matrix:5:5:2500" . 1.0) ("lattice:44:10" . 1.0079437861216478) ("graphs:7:3" . 1.198135373192713) ("earley:1" . 1.0959681146976517) ("dynamic:500" . 1.16155735839947) ("conform:500" . 1.0119217370442324) ("compiler:2000" . 1.0306165278415973) ("read1:2500" . 1.0460552396933456) ("wc:inputs/bib:50" . 1.0) ("tail:50" . 1.0319054479289398) ("cat:50" . 1.0) ("sum1:25" . 1.034137468078866) ("string:500000:100" . 1.0) ("array1:1000000:500" . 1.0) ("ack:3:12:2" . 1.0057561961050057) ("simplex:1000000" . 1.0) ("ray:50" . 1.0438647708135202) ("pnpoly:1000000" . 1.0874091135942872) ("pi:50:500:50:100" . 1.0215934390378087) ("nucleic:50" . 1.0) ("mbrotZ:75:1000" . 1.052938347579755) ("mbrot:75:1000" . 1.0329378591712912) ("fft:65536:100" . 1.0189087888402792) ("sumfp:1000000.0:500" . 1.0482534106366277) ("sum:10000:200000" . 1.0289912283371638) ("fibfp:35.0:10" . 1.033671691949834) ("fibc:30:10" . 1.178850020182939) ("fib:40:5" . 1.024466514102094) ("ctak:27:16:8:1" . 1.1039955311250749) ("cpstak:40:20:11:1" . 1.0371479505513828) ("ntakl:40:20:12:1" . 1.0213756257162367) ("takl:40:20:12:1" . 1.0) ("tak:40:20:11:1" . 1.0126417896363957) ("triangl:22:1:50" . 1.0) ("puzzle:1000" . 1.0) ("divrec:1000:1000000" . 1.0450154469330961) ("diviter:1000:1000000" . 1.0591207445325488) ("destruc:600:50:4000" . 1.0838399255052662) ("deriv:10000000" . 1.0) ("browse:2000" . 1.018717561314545) ("bv2string:1000:1000:100" . 1.036089236974368) ("equal" . #f) ("mperm:20:10:2:1" . 1.0) ("gcbench:20:1" . 1.0243606915521992) ("sboyer:5:1" . 1.00368112089037) ("nboyer:5:1" . 1.0500604616494615) ("chudnovsky:50:500:50:1000" . 1.115409983742645) ("slatex:500" . 1.0002570334324394) ("scheme:100000" . 1.0390531892971318) ("quicksort:10000:2500" . 1.0098428078516584) ("primes:1000:10000" . 1.06437827292514) ("peval:2000" . 1.024359358481343) ("parsing:2500" . 1.0004232513670308) ("paraffins:23:10" . 2.024687502614597) ("nqueens:13:10" . 1.0058665553469563) ("mazefun:11:11:10000" . 1.056194215282642) ("maze:20:7:10000" . 1.020543843425558) ("matrix:5:5:2500" . 1.0028500406404608) ("lattice:44:10" . 1.0) ("graphs:7:3" . 1.0) ("earley:1" . 1.0256148071738138) ("dynamic:500" . 1.008662479565268) ("conform:500" . 1.0332430727462598) ("compiler:2000" . 1.006956809282123) ("read1:2500" . 1.0564058966125223) ("wc:inputs/bib:50" . 1.0335552278476583) ("tail:50" . 1.0) ("cat:50" . 1.0263527061380673) ("sum1:25" . 1.0638438694063255) ("string:500000:100" . 1.1084001200578586) ("array1:1000000:500" . 1.0547700539059255) ("ack:3:12:2" . 1.0) ("simplex:1000000" . 1.021845418562125) ("ray:50" . 1.0558263145762616) ("pnpoly:1000000" . 1.0598933662254997) ("pi:50:500:50:100" . 1.0211985475879175) ("nucleic:50" . 1.0313190698159154) ("mbrotZ:75:1000" . 1.0191939711368345) ("mbrot:75:1000" . 1.0325883765897468) ("fft:65536:100" . 1.1023483002887104) ("sumfp:1000000.0:500" . 1.0794299746553448) ("sum:10000:200000" . 1.063704305941153) ("fibfp:35.0:10" . 1.1160079648284265) ("fibc:30:10" . 1.0) ("fib:40:5" . 1.0533185743228644) ("ctak:27:16:8:1" . 1.2839324786349615) ("cpstak:40:20:11:1" . 1.0290465857280968) ("ntakl:40:20:12:1" . 1.017152038958873) ("takl:40:20:12:1" . 1.0008854776027978) ("tak:40:20:11:1" . 1.0077102329273817) ("triangl:22:1:50" . 1.0435679627887324) ("puzzle:1000" . 1.0006869727744467) ("divrec:1000:1000000" . 1.0) ("diviter:1000:1000000" . 1.0496228639946887) ("destruc:600:50:4000" . 1.0446502508269544) ("deriv:10000000" . 1.0901526807172006) ("browse:2000" . 1.0)) === Guileregular Geometric Mean slowdown (successful tests / total tests) === 1.0504373210343294 (112 / 114) Actual full results from two runs: === Guiletuned times === (("ack:3:12:2" "2.85671086") ("ack:3:12:2" "2.920076389") ("array1:1000000:500" "2.719338434") ("array1:1000000:500" "2.630303504") ("browse:2000" "4.653660319") ("browse:2000" "5.118496161") ("bv2string:1000:1000:100" "1.433438423") ("bv2string:1000:1000:100" "1.386500303") ("cat:50" "10.334967974") ("cat:50" "10.407612189") ("chudnovsky:50:500:50:1000" "0.362723212") ("chudnovsky:50:500:50:1000" "0.371314469") ("compiler:2000" "2.14676404") ("compiler:2000" "2.355796491") ("conform:500" "4.878185941") ("conform:500" "4.834137994") ("cpstak:40:20:11:1" "17.407945755") ("cpstak:40:20:11:1" "17.213716706") ("ctak:27:16:8:1" "13.296419091") ("ctak:27:16:8:1" "13.101386139") ("deriv:10000000" "6.006358226") ("deriv:10000000" "6.160541397") ("destruc:600:50:4000" "2.524561809") ("destruc:600:50:4000" "2.585279527") ("diviter:1000:1000000" "4.459944493") ("diviter:1000:1000000" "4.655874665") ("divrec:1000:1000000" "6.71596458") ("divrec:1000:1000000" "6.722703389") ("dynamic:500" "3.525123929") ("dynamic:500" "3.809416833") ("earley:1" "4.054948659") ("earley:1" "4.260803481") ("equal" "ULIMITKILLED") ("equal" "ULIMITKILLED") ("fft:65536:100" "2.635766227") ("fft:65536:100" "2.509186252") ("fib:40:5" "4.193038108") ("fib:40:5" "4.202893409") ("fibc:30:10" "40.788333173") ("fibc:30:10" "36.494392282") ("fibfp:35.0:10" "9.395625366") ("fibfp:35.0:10" "9.67364254") ("gcbench:20:1" "0.99502713") ("gcbench:20:1" "1.014673477") ("graphs:7:3" "12.370817417") ("graphs:7:3" "13.124503659") ("lattice:44:10" "6.197259938") ("lattice:44:10" "6.154507367") ("matrix:5:5:2500" "3.641334999") ("matrix:5:5:2500" "3.73835108") ("maze:20:7:10000" "1.613933494") ("maze:20:7:10000" "1.61592533") ("mazefun:11:11:10000" "3.749008984") ("mazefun:11:11:10000" "3.737740216") ("mbrot:75:1000" "19.750189296") ("mbrot:75:1000" "19.153698506") ("mbrotZ:75:1000" "20.612462381") ("mbrotZ:75:1000" "21.07964648") ("mperm:20:10:2:1" "9.617642771") ("mperm:20:10:2:1" "9.281691405") ("nboyer:5:1" "1.872344958") ("nboyer:5:1" "1.925542129") ("nqueens:13:10" "6.834513689") ("nqueens:13:10" "6.715906809") ("ntakl:40:20:12:1" "3.226853095") ("ntakl:40:20:12:1" "3.375634349") ("nucleic:50" "4.703444216") ("nucleic:50" "4.776839468") ("paraffins:23:10" "2.986478347") ("paraffins:23:10" "5.984647443") ("parsing:2500" "3.588179787") ("parsing:2500" "3.589458835") ("peval:2000" "4.217629667") ("peval:2000" "4.453879673") ("pi:50:500:50:100" "0.526672392") ("pi:50:500:50:100" "0.503771353") ("pnpoly:1000000" "12.105856386") ("pnpoly:1000000" "12.216993927") ("primes:1000:10000" "2.763279203") ("primes:1000:10000" "2.859615422") ("puzzle:1000" "7.432281644") ("puzzle:1000" "7.359046832") ("quicksort:10000:2500" "4.919145241") ("quicksort:10000:2500" "4.680086002") ("ray:50" "6.232801675") ("ray:50" "6.289500818") ("read1:2500" "3.322952744") ("read1:2500" "3.135139562") ("sboyer:5:1" "1.585267198") ("sboyer:5:1" "1.550538069") ("scheme:100000" "5.899088913") ("scheme:100000" "6.305636088") ("simplex:1000000" "4.74155611") ("simplex:1000000" "4.764164057") ("slatex:500" "5.5026227") ("slatex:500" "5.537808753") ("string:500000:100" "0.68799508") ("string:500000:100" "0.680705551") ("sum1:25" "3.378466719") ("sum1:25" "3.260874144") ("sum:10000:200000" "1.715693396") ("sum:10000:200000" "1.720665139") ("sumfp:1000000.0:500" "17.278236223") ("sumfp:1000000.0:500" "17.121625997") ("tail:50" "4.837888687") ("tail:50" "4.868554424") ("tak:40:20:11:1" "2.207812177") ("tak:40:20:11:1" "2.13063615") ("takl:40:20:12:1" "3.273725333") ("takl:40:20:12:1" "3.356636843") ("triangl:22:1:50" "3.13643409") ("triangl:22:1:50" "3.112446043") ("wc:inputs/bib:50" "6.354178924") ("wc:inputs/bib:50" "6.062416889")) === Guileregular times === (("ack:3:12:2" "2.823197595") ("ack:3:12:2" "2.839448474") ("array1:1000000:500" "2.727697517") ("array1:1000000:500" "2.58605893") ("browse:2000" "4.62347843") ("browse:2000" "4.710018671") ("bv2string:1000:1000:100" "1.436538041") ("bv2string:1000:1000:100" "1.480061766") ("cat:50" "9.705074729") ("cat:50" "9.45588653") ("chudnovsky:50:500:50:1000" "0.404585092") ("chudnovsky:50:500:50:1000" "0.425650091") ("compiler:2000" "2.161698668") ("compiler:2000" "2.212490501") ("conform:500" "4.994839595") ("conform:500" "4.891769316") ("cpstak:40:20:11:1" "17.713716404") ("cpstak:40:20:11:1" "17.853171003") ("ctak:27:16:8:1" "16.821295179") ("ctak:27:16:8:1" "14.463871749") ("deriv:10000000" "6.507820501") ("deriv:10000000" "5.969641332") ("destruc:600:50:4000" "2.637284127") ("destruc:600:50:4000" "2.736220883") ("diviter:1000:1000000" "4.681259712") ("diviter:1000:1000000" "4.723619732") ("divrec:1000:1000000" "6.673202011") ("divrec:1000:1000000" "6.973599182") ("dynamic:500" "3.555660243") ("dynamic:500" "4.094633639") ("earley:1" "4.158815387") ("earley:1" "4.444094437") ("equal" "ULIMITKILLED") ("equal" "ULIMITKILLED") ("fft:65536:100" "2.7659972") ("fft:65536:100" "2.556631925") ("fib:40:5" "4.416604922") ("fib:40:5" "4.295627134") ("fibc:30:10" "36.233365092") ("fibc:30:10" "42.71370317") ("fibfp:35.0:10" "10.485592743") ("fibfp:35.0:10" "9.711991969") ("gcbench:20:1" "1.019266679") ("gcbench:20:1" "1.012182828") ("graphs:7:3" "11.912688219") ("graphs:7:3" "14.273013145") ("lattice:44:10" "6.134356748") ("lattice:44:10" "6.183086766") ("matrix:5:5:2500" "3.579898395") ("matrix:5:5:2500" "3.569724535") ("maze:20:7:10000" "1.647089891") ("maze:20:7:10000" "1.692950212") ("mazefun:11:11:10000" "3.815654415") ("mazefun:11:11:10000" "3.612644682") ("mbrot:75:1000" "19.777886446") ("mbrot:75:1000" "19.78458033") ("mbrotZ:75:1000" "21.008097389") ("mbrotZ:75:1000" "21.703652079") ("mperm:20:10:2:1" "8.094478518") ("mperm:20:10:2:1" "8.861341606") ("nboyer:5:1" "1.924134672") ("nboyer:5:1" "1.832403697") ("nqueens:13:10" "6.755306048") ("nqueens:13:10" "6.783168806") ("ntakl:40:20:12:1" "3.282200205") ("ntakl:40:20:12:1" "3.295829099") ("nucleic:50" "4.842285137") ("nucleic:50" "4.695234752") ("paraffins:23:10" "6.046685386") ("paraffins:23:10" "6.098533486") ("parsing:2500" "3.589698489") ("parsing:2500" "3.738489773") ("peval:2000" "4.32036842") ("peval:2000" "4.255106956") ("pi:50:500:50:100" "0.514450574") ("pi:50:500:50:100" "0.514649509") ("pnpoly:1000000" "12.830916876") ("pnpoly:1000000" "13.164018562") ("primes:1000:10000" "2.921479898") ("primes:1000:10000" "2.744775962") ("puzzle:1000" "6.021742132") ("puzzle:1000" "6.017608199") ("quicksort:10000:2500" "4.71159952") ("quicksort:10000:2500" "4.665676166") ("ray:50" "6.580756022") ("ray:50" "6.506202092") ("read1:2500" "3.31197992") ("read1:2500" "3.279529166") ("sboyer:5:1" "1.496605726") ("sboyer:5:1" "1.491116745") ("scheme:100000" "6.129467149") ("scheme:100000" "6.622910116") ("simplex:1000000" "4.766683108") ("simplex:1000000" "4.664779057") ("slatex:500" "5.504037058") ("slatex:500" "5.634341685") ("string:500000:100" "0.750405621") ("string:500000:100" "0.677016907") ("sum1:25" "3.469060967") ("sum1:25" "3.372192131") ("sum:10000:200000" "1.824990453") ("sum:10000:200000" "1.765433455") ("sumfp:1000000.0:500" "18.481596316") ("sumfp:1000000.0:500" "17.947802847") ("tail:50" "4.54999235") ("tail:50" "4.695161894") ("tak:40:20:11:1" "2.147063851") ("tak:40:20:11:1" "2.157571204") ("takl:40:20:12:1" "3.25309459") ("takl:40:20:12:1" "3.250216596") ("triangl:22:1:50" "3.201959263") ("triangl:22:1:50" "3.068280531") ("wc:inputs/bib:50" "6.111397639") ("wc:inputs/bib:50" "5.912986045")) Best wishes, Arne -- Unpolitisch sein heißt politisch sein, ohne es zu merken. draketo.de