3 ms·
Language Shootout does not use Mono configured for HPC (--llvm, -O=unsafe). It will also likely do poorly, because LLVM is slow to startup, but the resulting c
by migueldeicaza 14y ago
Language Shootout does not use Mono configured for HPC (--llvm, -O=unsafe).
It will also likely do poorly, because LLVM is slow to startup, but the resulting code is nothing short of God's own fine tuned code.
Alternatively, you can pre-compile the code with AOT:
mono --aot --llvm -O=unsafe sample.exe
But AOT code requires the sacrifice of a register to the gods of position independent code. Kind of the same perf hit you get from gcc -fPIC foo.c
- igouy 14y agoHere's the command line for the spectral-norm C# programs shown on the benchmarks game website: /usr/local/src/mono-2.11.4/bin/mono --gc=sgen --llvm spectralnorm.csharp-2.csharp_run 5500 As you can see --llvm is used. (Since June 27, 2012)
- migueldeicaza 14y agoLovely! This sample shows the startup cost of LLVM. It is not ideal for short-running tasks, as just JITing this code with LLVM increases the overhead for this test by 0.42 seconds on my machine (iMac, 2010). Might be worth running this for a longer period of time, they will basically converge. LLVM is great for HPC, when this startup cost is not a problem.
- igouy 14y agoSadly not lovely, because when I installed Mono 2.11.4 a couple of weeks ago, I forgot about "Compiling with stock LLVM is not supported, please use the Mono LLVM repo..."; and I guess when --llvm is used without LLVM being enabled, Mono does not give a warning message. The Mono 3.0.0 measurements are made with LLVM enabled.