[Mono-dev] Mono performance rocks!

pablosantosluac pablosantosluac at terra.es
Thu Feb 1 02:42:30 EST 2007


Hi all,

I sent this email again from a wrong email account, hope is not arriving 
twice.

Long has been written about Mono (or .NET) performance compared to
equivalent C/C++ programs.

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

Anyway, testing loops doesn't seem to be a way to check *real* performance.

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... :-)

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:

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







More information about the Mono-devel-list mailing list