[Mono-dev] substantial performance regression between 2.10 and 2.6 or impl diff?

Jonathan Shore jonathan.shore at gmail.com
Sat Aug 27 16:49:38 EDT 2011


I think all of these results point to a regression in performance between 2.10.x and 2.6.x.    I ran the 2.6.x version on OSX and found it to be faster than 2.10.x.  

I will run on mu core i7 linux box and see how that fairs.

On Aug 27, 2011, at 4:09 PM, Bojan Rajkovic wrote:

> Hi all,
> 
> Here's my results from 64-bit Mono master on OS X 10.7.1. The CPU is an Intel Core i7 @ 2.0 GHz, with 8 GB of RAM backing it:
> 
> struct sum: 5000089998356.48, time: 1.593511 secs
> class sum: 5000089998356.48, time: 14.413891 secs
> 
> Classes are almost twice as slow, which is somewhat odd.
> 
> —Bojan
> 
> On Aug 27, 2011, at 3:36 PM, Jonathan Shore wrote:
> 
>> Ok.  When you have a chance can you indicate your marks & CPU?   I expect a reasonably modern CPU to be 2 - 6x fast than my sluggish cpu.   Thanks.
>> 
>> 
>> So for instance my mac X5130 rates at 12.7 CINT 2006  vs  28.6  
>> 
>> On Aug 27, 2011, at 2:57 PM, Slide wrote:
>> 
>>> I just ran on ubuntu 64bit with mono 2.10.1 and got better numbers than your 2.6.7. I had to run somewhere quick but will publish the numbers when I get back.
>>> 
>>> On Aug 27, 2011 11:16 AM, "Jonathan Shore" <jonathan.shore at gmail.com> wrote:
>>> > 
>>> > My machine is an old 2006 Mac Pro 1,1 2 x Xeon 5130 (64 bit) running OSX lion. Here are the respective versions of mono:
>>> > 
>>> > Mono on OSX:
>>> > 
>>> > Mono JIT compiler version 2.10.4 (tarball Mon Aug 8 22:03:39 EDT 2011)
>>> > Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
>>> > TLS: normal
>>> > SIGSEGV: normal
>>> > Notification: kqueue
>>> > Architecture: x86
>>> > Disabled: none
>>> > Misc: debugger softdebug 
>>> > LLVM: yes(2.9svn-mono)
>>> > GC: Included Boehm (with typed GC)
>>> > 
>>> > 
>>> > Mono on Ubuntu 11.04 (running in VMWare VM on same machine):
>>> > 
>>> > Mono JIT compiler version 2.6.7 (Debian 2.6.7-5ubuntu3)
>>> > Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
>>> > TLS: __thread
>>> > GC: Included Boehm (with typed GC and Parallel Mark)
>>> > SIGSEGV: altstack
>>> > Notifications: epoll
>>> > Architecture: amd64
>>> > Disabled: none
>>> > 
>>> > 
>>> > Here is the Mac OSX mono 2.10.4 run:
>>> > 
>>> > $ mono main.exe 
>>> > Running benchmark
>>> > struct sum: 5000089998356.48, time: 9.010549 secs
>>> > class sum: 5000089998356.48, time: 30.67357 secs
>>> > 
>>> > Here is the Ubuntu 11.04 mono 2.6.7 run:
>>> > 
>>> > $ mono main.exe 
>>> > Running benchmark
>>> > struct sum: 5000089998356.48, time: 2.737732 secs
>>> > class sum: 5000089998356.48, time: 7.83984 secs
>>> > 
>>> > Note that the running time for mono 2.6.7 is ~4x faster than mono 2.10.4 on the same box (and the linux run has the disadvantage of running on a VM). The struct test is most likely not exercising the GC and the later is. I suspect given the consistent performance difference is *not* a GC issue, rather a difference in the JIT code generation. 
>>> > 
>>> > Let me know if there is other information I can provide. Thanks. 
>>> > 
>>> > Jonathan
>>> > 
>>> > On Aug 27, 2011, at 1:52 PM, Slide wrote:
>>> > 
>>> >> 
>>> >> 
>>> >> On Sat, Aug 27, 2011 at 10:27 AM, Jonathan Shore <jonathan.shore at gmail.com> wrote:
>>> >> Hi,
>>> >> 
>>> >> I was doing some benchmarks of struct vs class based creation (I have an application that will generate millions of small objects). I was doing the tests in a ubuntu 11.4 VM on my mac pro and found the following:
>>> >> 
>>> >> mono 2.6.7 was 4x faster on my linux VM than 2.10.4 running on OSX (same machine)
>>> >> 
>>> >> I don't know whether this may be because of one of the following:
>>> >> 
>>> >> - performance in 2.10.4 regressed vs 2.6.7
>>> >> - mono JIT implementation for OSX has a completely different JiT codebase and does not perform
>>> >> - difference in GC (only relevant for second part of the test)
>>> >> 
>>> >> Note that I tried this with separate compilations with mcs -optimize+ on both environments as well as running the same exe on both.
>>> >> 
>>> >> I can live with slower performance on OSX, but want to make sure that linux and windows versions of mono 2.10.x have the performance of 2.6.7 or better.
>>> >> 
>>> >> Can someone clue me in? I've included the simple test code with this posting.
>>> >> 
>>> >> Thanks
>>> >> 
>>> >> Jonathan
>>> >> 
>>> >> 
>>> >> 
>>> >> Can you publish your benchmark numbers and for what machines you are running on?
>>> >> 
>>> >> slide
>>> >> 
>>> >> -- 
>>> >> slide-o-blog
>>> >> http://slide-o-blog.blogspot.com/
>>> > 
>> 
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20110827/c44a66f4/attachment.html 


More information about the Mono-devel-list mailing list