Quite interesting, but it seems they used the old Mono gc, when testing F# on linux
I tried to replicate their results (it wasn't really easy to setup, so I only ran few tests) to show the difference when using the SGEN gc, these are my results on my corei7 860 (4 cores + hyperthreading)
F# on Windows8 64bit (it should be .net 4.5)
.\fsharpbench.exe 80000 1 bharr 3
6.94s
F# on Linux (Mono 2.10.8)
mono-sgen Main.exe 80000 1 bharr 3
13.69s
mono Main.exe 80000 1 bharr 3
20.54s
and, by changing the gc's write barrier, you can shave off an half second more:
so, F# on Linux is still slower than Scala and F# on Windows, but the situation is not as bad as in the paper (4/5 times slower, or worse): it's in the same ballpark (a little more than 0.5 the speed on Windows) imho: definitely usable (on single core loads it is also much more competitive, from the few lines of F# that I've written)
btw: it seems also that Scala2.10 is quite faster than Scala2.9 :D
I tried to replicate their results (it wasn't really easy to setup, so I only ran few tests) to show the difference when using the SGEN gc, these are my results on my corei7 860 (4 cores + hyperthreading)
F# on Windows8 64bit (it should be .net 4.5)
.\fsharpbench.exe 80000 1 bharr 3
6.94s
F# on Linux (Mono 2.10.8)
mono-sgen Main.exe 80000 1 bharr 3
13.69s
mono Main.exe 80000 1 bharr 3
20.54s
and, by changing the gc's write barrier, you can shave off an half second more:
env MONO_GC_PARAMS="wbarrier=remset" mono-sgen Main.exe 80000 1 bharr 3
13.02s
Linux Scala 2.10M7
scalac-2.10 bh-impure.scala
scala-2.10 Simulation 80000 True 1
5.641 s
Scala 2.9
scalac bh-impure.scala
scala Simulation 80000 True 1
7.676 s
so, F# on Linux is still slower than Scala and F# on Windows, but the situation is not as bad as in the paper (4/5 times slower, or worse): it's in the same ballpark (a little more than 0.5 the speed on Windows) imho: definitely usable (on single core loads it is also much more competitive, from the few lines of F# that I've written)
btw: it seems also that Scala2.10 is quite faster than Scala2.9 :D