[Mono-dev] Mono performance rocks!

Miguel de Icaza miguel at novell.com
Thu Feb 1 10:23:42 EST 2007


> To be honest I was even once totally fed up about it:
> http://codicesoftware.blogspot.com/2006/10/c-as-fast-as-c.html

It is a nice test, but you have to keep in mind that your test is
heavily I/O bound (talking to the console) and I/O tends to dominate all
other operations.

Although your test is exercising a lot of C# code behind the scenes
(UCS-2 to UTF-8 Encoding) the IO is still taking a large amount of

> One of our main concerns at the beginning of the Plastic project was
> actually performance: our goal was having a multiplatform version control
> system (you aren't multiplatform... you're not cool :-P), written in C#!!
> So, how fast could it be? I still remember our first "add" operation: a
> whole Quake 3 src repository (about 30Mb, 1300 files if I remember
> correctly) took *just*... 11 hours!! So our concerns were even higher
> then... :-)

The JIT performance certainly plays a role, but we have also discovered
that with managed applications memory consumption is also a big part of
the equation.  Reducing memory usage in your application with Mono will
always help your performance as well.

> Well, last week we run again some performance tests checking our "update
> speed" (how fast you can download a certain baseline to your computer from a
> server) against other version control systems. We didn't make any
> optimization since our official release (November), but our results were:

Nice numbers!

This test would also be heavily IO dominated (you could also tune,
optimize and arrange your IO).

In your case, where you compare Plastic and Subversion, I would guess
that you do a lot less IO than Subversion.   

> Client: Acer TravelMate 370 -> 1'5 GB RAM, 1'4GHz centrino's CPU
> Server: Dell Server: a Xeon Processor with 4 GB RAM.
> Network: 100Mbps regular LAN
> Repository: Quake 3 source -> 30 Mb, 1376 files, 66 directories
> Time to download the code -> Plastic running on Mono -> 11s
>                                            ->
>            -> 30s
> We also checked with a much less powerful server: 1'8Ghz Pentium IV with
> 512Mb RAM
>                                            -> Plastic -> 20s
>                                            -> Subversion ->  38s
> We added a 40 Mb file to the rep
>                                           -> Plastic -> 24s
>                                           -> Subversion -> 52 s
> BTW, we run the tests several times to confirm the results.
> So, yes, you can beat C written apps on Mono! :-)
> And yes, "update" is our faster operation, but we still have to improve add
> and check in speed (running in groups).
> pablo
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

More information about the Mono-devel-list mailing list