ecraven / r7rs-benchmarks

Benchmarks for various Scheme implementations. Taken with kind permission from the Larceny project, based on the Gabriel and Gambit benchmarks.
270 stars 32 forks source link

IronScheme: Use .NET Core instead of Mono #69

Closed leppie closed 1 month ago

leppie commented 1 month ago

Noticed Mono is still being used for the benchmarks. Mono is very slow and IronScheme also has to cater for funniness in Mono that makes it even slower.

For non-Windows OS's I suggest using .NET Core (you can try .NET 8, but .NET 6 should be good if the former does not work).

You can get the from: https://dotnet.microsoft.com/en-us/download/dotnet

Running should be similar to Mono: dotnet IronScheme.ConsoleCore.dll <args...> . See https://github.com/IronScheme/IronScheme?tab=readme-ov-file#running-on-linuxmacos for more info.

Note that .NET Core does not currently support precompiling (will come in .NET 9), but that should not matter at all for benchmarks as everything should be incrementally compiled by the time the bench timing starts.

Bonus request: Keep Mono and add .NET Core for side-by-side comparisons.

leppie commented 1 month ago

Will be doing a small update for IronScheme as I see .NET 8+ was not working, but has substantial performance improvements over .NET 6.

Also will be doing a PR for unbalanced parenthesis in matrix.input.

>IronScheme.ConsoleCore.exe --fx-version 6.0.32 matrix.scm < matrix.input
Running matrix:5:5:2500
Elapsed time: 41.9493855 seconds (42) for matrix:5:5:2500
+!CSVLINE!+ironscheme-Latest,matrix:5:5:2500,41.9493855

>IronScheme.ConsoleCore.exe --fx-version 8.0.5 matrix.scm < matrix.input
Running matrix:5:5:2500
Elapsed time: 34.5705173 seconds (35) for matrix:5:5:2500
+!CSVLINE!+ironscheme-Latest,matrix:5:5:2500,34.5705173

>IronScheme.ConsoleCore.exe --fx-version 9.0.0-preview.6.24327.7 matrix.scm < matrix.input
Running matrix:5:5:2500
Elapsed time: 30.5415853 seconds (31) for matrix:5:5:2500
+!CSVLINE!+ironscheme-Latest,matrix:5:5:2500,30.5415853
ecraven commented 1 month ago

Arch Linux has .NET Core 8, I've installed that locally, I'll run a new set of tests with it "soon" ;) Thanks for the fixes!