[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:
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
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:
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).
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
More information about the Mono-devel-list