Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Mono 3.10.0 (mono-project.com)
35 points by merrua on Oct 6, 2014 | hide | past | favorite | 10 comments


I've always wondered at the performance of Mono relative to the Real C#, but I suspect that Microsoft has language in the license to prevent such benchmarks (or something)...

Some benchmarks are in the Game. Looking over the benchmarks, I realized that I shouldn't be comparing Mono to the Real C# since I wouldn't ever run Mono on Windows. I'd only ever run it on Linux, so, if you're running a Linux stack, Mono should be compared to its colleagues in the Linux space.

    Mono vs Java: http://benchmarksgame.alioth.debian.org/u64q/csharp.php
    Mono vs Go  : http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=csharp&lang2=go
    Mono vs Rust: http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=csharp&lang2=rust


With the caveat language != implementation.


True, but FWIW that site is somewhat admirable for at least trying to cut implementation out & focus on language.

For example, see the documentation for the binary-trees test: http://benchmarksgame.alioth.debian.org/u64q/performance.php...

There are a bunch of notes trying to make it very explicit that this test is supposed to isolate the garbage collector's performance. So they discourage lazy evaluation on the grounds that it might not produce the kind of allocation pattern the test is supposed to generate, and there's that bold admonition against memory management hacks, and all of that.

I'm sure there's still plenty room for gaming the system, but looking at the actual C# & Java implementations for the test reveal that by-and-large they really are roughly equivalent. In particular, the C# doesn't resort to any obvious dirty trick like declaring the tree node datatype as a struct rather than a class. The upshot being, what that particularly test suggests is something that probably shouldn't come as much surprise: Mono's gc, while good, isn't quite as performant as HotSpot's.


I am speaking about language implementation, not algorithm implementation.

Most of those tests are using just one single compiler implementation per language.

It would be much fairer to have multiple compiler implementations per language being used.


Mono 3.10.0 is the latest version of Mono (released over the weekend); not 3.8.0


Release notes appear to be: http://www.mono-project.com/docs/about-mono/releases/3.10.0/

Weirdly, 3.8.0 is the "latest" news release on their page.


Well, both releases are nice, thanks for posting :)


Mono's package appears to lag behind their code releases by a significant amount.

So while you can download and build the source for 3.10 right now you can not download the packaged mdk's as easily. At least it's not trivial to find them anyway. I'm not sure of why this is.


Where "significant amount" = a day or so?


In recent experience it seemed to be weeks. Maybe I'm just not watching the right channels though.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: