[Mono-list] F# support on mono, performance
Rodrigo Kumpera
kumpera at gmail.com
Mon Feb 1 08:59:41 EST 2010
On Mon, Feb 1, 2010 at 11:33 AM, Jonathan Shore <jonathan.shore at gmail.com>wrote:
> You are entirely right. I like other quants in finance, use R for a lot
> of my work, but Java for performance (used to be C++). My preference is to
> use a functional language at the level where I use Java. The only
> practical choices at this point are Scala (not a big fan) or F#. There
> are other implementations for FP such as INRIA's Ocaml, and Jaskell (but
> much too slow), Clojure (again too slow), etc ...
>
> I've also been back-reading on the LLVM vs mono code-generation debate.
> At this point the main concern stated in not moving over to LLVM completely
> is the slower JIT'ing in LLVM. Surely there are different levels of JIT
> optimisations that can be turned on or off within LLVM?
>
LLVM is significantly slower than mono's JIT even if we no optimizations are
done and the fast inssel backend is used.
>
> I recognize that the .NET CLR does at up-front JIT compilation, whereas the
> java JVM uses profiling to determine what to JIT and how. Now that may be
> added complexity, but seems to serve Java well. The cost of JIT is
> amortized or not done at all for portions of the code.
>
Working the way Java does is a huge amount of effort to be effective. It's
probably as hard as making mono's current JIT be on the same level as MS's.
> At this point LLVM has matured and gained enough momentum that one would
> suspect that it is more "expensive" for mono development to enhance its own
> code generation than adopt LLVM. I raise this issue as there are a number
> of things that LLVM does quite a bit better. The effort focused on
> in-house code generation could be focused on a better more complete LLVM /
> LLVM-mapping. Just speaking as a 3rd party looking-in ...
>
>
Today it's not possible to completely switch to LLVM since, for example, it
runs on less archs than mono does and a binary with LLVM enabled is 3 times
bigger. And I'm not sure if it's even desirable to completely switch, it's
something that we'll eventually figure out once our LLVM backend gets more
mature.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-list/attachments/20100201/29318f77/attachment.html
More information about the Mono-list
mailing list