Re: [Mono-dev] Mono GC 2.8.2: embedding

2011-08-27 Thread Duane Wandless
I compiled a debug build of libmonosgen from trunk and now have this
stacktrace.  My app embeds mono into a Cocoa application, with Cocoa
initializing the mono runtime.

Stacktrace:

  at unknown 0x
  at System.AppDomain.ValidateAssemblyName (string) IL 0x00034, 0x0004f
  at System.AppDomain.DefineDynamicAssembly
(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,string,System.Security.Policy.Evidence,System.Security.PermissionSet,System.Security.PermissionSet,System.Security.PermissionSet,bool)
IL 0x00017, 0x00023
  at (wrapper remoting-invoke-with-check)
System.AppDomain.DefineDynamicAssembly
(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,string,System.Security.Policy.Evidence,System.Security.PermissionSet,System.Security.PermissionSet,System.Security.PermissionSet,bool)
IL 0x00045, 0x
  at MonoMac.ObjCRuntime.NativeImplementationBuilder..cctor () IL
0x000e6, 0x001f3
  at (wrapper runtime-invoke) object.runtime_invoke_void
(object,intptr,intptr,intptr) IL 0x0004c, 0x
  at unknown 0x
  at MonoMac.ObjCRuntime.NativeMethodBuilder..ctor
(System.Reflection.MethodInfo,System.Type,MonoMac.Foundation.ExportAttribute)
IL 0x1, 0x0001b
  at MonoMac.ObjCRuntime.NativeMethodBuilder..ctor
(System.Reflection.MethodInfo) IL 0x00022, 0x0006b
  at MonoMac.ObjCRuntime.Class..cctor () IL 0x00016, 0x0004b
  at (wrapper runtime-invoke) object.runtime_invoke_void
(object,intptr,intptr,intptr) IL 0x0004c, 0x
  at unknown 0x
  at MonoMac.AppKit.NSApplication..cctor () IL 0x004c4, 0x008ef
  at (wrapper runtime-invoke) object.runtime_invoke_void
(object,intptr,intptr,intptr) IL 0x0004c, 0x
  at unknown 0x
  at MacClient.Program.Main (string[]) [0x00022] in
C:\Users\Duane\Documents\NewSVN\Win23\api_clean_409\MacClient\MonoMessage.cs:50
  at (wrapper runtime-invoke) Module.runtime_invoke_void_object
(object,intptr,intptr,intptr) IL 0x00050, 0x

Native stacktrace:

0   mysgen.dylib0x002d0a3e
mono_handle_native_sigsegv + 376
1   mysgen.dylib0x00207e19
mono_sigsegv_signal_handler + 322
2   libSystem.B.dylib   0x93e7305b _sigtramp + 43
3   ??? 0x 0x0 + 4294967295
4   ??? 0x0097c4d9 0x0 + 9946329


On Thu, Aug 25, 2011 at 5:57 PM, Duane Wandless du...@wandless.net wrote:

 I found this bug against 2.10.2:
 https://bugzilla.novell.com/show_bug.cgi?id=694027

 Thanks,
 Duane


 On Thu, Aug 25, 2011 at 5:47 PM, Duane Wandless du...@wandless.netwrote:

 This is still happening with 2.10.4.  Any suggestions?

 *dyld: Symbol not found: _MONO_DEBUGGER__debugger_info*

 *  Referenced from:
 /Library/Frameworks/Mono.framework/Versions/2.10.4/lib/libmonosgen-2.0.0.dylib
 *

 *  Expected in: flat namespace*

 * in
 /Library/Frameworks/Mono.framework/Versions/2.10.4/lib/libmonosgen-2.0.0.dylib
 *

 *
 *

 On Fri, Feb 25, 2011 at 4:59 PM, Duane Wandless du...@wandless.netwrote:

 I found this reference:
 http://go-mono.com/forums/#nabble-td2277117

 Which says:
 You've configured mono without debugger support
 (--disable-mono-debugger),
 which is currently broken (it should get fixed later today).

 I did not compile libmonosgen that is the 2.8.2 install.  So is
 libmonosgen being incorrectly compiled?

 Duane


 On Thu, Feb 17, 2011 at 4:00 PM, Duane Wandless du...@wandless.netwrote:

 I am trying to embed the sgen libraries (on Snow Leopard) but receiving
 this error at runtime:

 *dyld: Symbol not found: _MONO_DEBUGGER__debugger_info*

 *  Referenced from:
 /Library/Frameworks/Mono.framework/Versions/2.8.2/lib/libmonosgen-2.0.0.dylib
 *

 *  Expected in: dynamic lookup*

 Linker flags:
 -pthread -L/Library/Frameworks/Mono.framework/Versions/Current/lib 
 -lmonosgen-2.0 -lpthread -rpath@loader_path
 /../Libraries

 # otool -L InitMono.dylib
 InitMono.dylib:
 @loader_path/../Libraries/InitMono.dylib (compatibility version 1.0.0,
 current version 1.0.0)
  
 /Library/Frameworks/Mono.framework/Versions/2.8.2/lib/libmonosgen-2.0.0.dylib
 (compatibility version 1.0.0, current version 1.0.0)
 /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
 111.1.4)
  /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
 (compatibility version 1.0.0, current version 12.0.0)
 /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version
 1.0.0)
  /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version
 227.0.0)
 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
 (compatibility version 150.0.0, current version 476.19.0)
  /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
 (compatibility version 300.0.0, current version 677.26.0)


 Of course changing the -lmonosgen-2.0 to -lmono-2.0 and everything works
 as expected.

 Any suggestions on how to fix the symbol not 

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

2011-08-27 Thread Jonathan Shore
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:	mono2.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.ThanksJonathan

Main.cs
Description: Binary data
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Jonathan Shore

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: 589998356.48, time: 9.010549 secs
class sum: 589998356.48, time: 30.67357 secs

Here is the  Ubuntu 11.04  mono 2.6.7 run:

$ mono main.exe 
Running benchmark
struct sum: 589998356.48, time: 2.737732 secs
class sum: 589998356.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.sh...@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@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Jonathan Shore

On Aug 27, 2011, at 2:20 PM, Bojan Rajkovic wrote:

 On Aug 27, 2011, at 2:15 PM, Jonathan Shore 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:

Would 32 vs 64 really make that much of a difference?   I have used 32 bit C 
applications without any noticable perf difference.

I am worried that there may also be a problem with 2.10.x on other platforms.   
It would put my mind at ease if this is just a OSX implementation issue.

I don't know if I can reasonably install both 2.6.x and 2.10.x on linux without 
hand compiling and doing some magic in config.Would be nice to know that 
this benchmark performs the same or better from 2.6 to 2.10.

Jonathan 
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Bojan Rajkovic

On Aug 27, 2011, at 2:30 PM, Jonathan Shore wrote:

 
 On Aug 27, 2011, at 2:20 PM, Bojan Rajkovic wrote:
 
 On Aug 27, 2011, at 2:15 PM, Jonathan Shore 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:
 
 Would 32 vs 64 really make that much of a difference?   I have used 32 bit C 
 applications without any noticable perf difference.
 
 I am worried that there may also be a problem with 2.10.x on other platforms. 
   It would put my mind at ease if this is just a OSX implementation issue.
 
 I don't know if I can reasonably install both 2.6.x and 2.10.x on linux 
 without hand compiling and doing some magic in config.Would be nice to 
 know that this benchmark performs the same or better from 2.6 to 2.10.
 
 Jonathan

Might make a difference with respect to performance if your struct can fit in 
the registers on 64-bit, but cannot on 32-bit. :-) If you could post your 
benchmark code, more people could test.

—Bojan

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Jonathan Shore

I guess the code was trimmed off in the mailer (I sent in the initial note).  
Here it is inlined as text:


using System;

namespace TestHeap
{

public interface IDatum
{
longTimestamp   {  get; }
}


public struct SDelta : IDatum
{
public SDelta (long timestamp, long id, double size, double 
price, double maxsize = 0)
{
_timestamp = timestamp;
_id = id;
_size = size;
_price = price;
_maxsize = maxsize;
}


// Properties


public long Timestamp
{  get { return _timestamp; } }

public long Id
{  get { return _id; } }

public double Size 
{  get { return _size; } }

public double Price
{  get { return _price; } }

public double MaxSize
{  get { return _maxsize; } }


// Variables

private long_timestamp;
private long_id;
private double  _size;
private double  _price;
private double  _maxsize;
}


public class CDelta : IDatum
{
public CDelta (long timestamp, long id, double size, double 
price, double maxsize = 0)
{
_timestamp = timestamp;
_id = id;
_size = size;
_price = price;
_maxsize = maxsize;
}


// Properties


public long Timestamp
{  get { return _timestamp; } }

public long Id
{  get { return _id; } }

public double Size 
{  get { return _size; } }

public double Price
{  get { return _price; } }

public double MaxSize
{  get { return _maxsize; } }


// Variables

private long_timestamp;
private long_id;
private double  _size;
private double  _price;
private double  _maxsize;
}

class MainClass
{
private static SDelta f (int i)
{
return new SDelta (i*1000, i, 1e6, 1.400 + i / 1000);
}

private static CDelta g (int i)
{
return new CDelta (i*1000, i, 1e6, 1.400 + i / 1000);
}


public static void Main (string[] args)
{
Console.WriteLine (Running benchmark);

// struct test
long Tnow1 = DateTime.Now.Ticks;

double sum1 = 0;
for (int i = 0 ; i  1 ; i++)
sum1 += f(i).Price;

long Tend1 = DateTime.Now.Ticks;

// class test
long Tnow2 = DateTime.Now.Ticks;

double sum2 = 0;
for (int i = 0 ; i  1 ; i++)
sum2 += g(i).Price;

long Tend2 = DateTime.Now.Ticks;


Console.WriteLine (struct sum:  + sum1 + , time:  + 
((Tend1 - Tnow1) / 1e7) +  secs);
Console.WriteLine (class sum:  + sum2 + , time:  + 
((Tend2 - Tnow2) / 1e7) +  secs);
}
}
}


On Aug 27, 2011, at 2:34 PM, Bojan Rajkovic wrote:

 
 On Aug 27, 2011, at 2:30 PM, Jonathan Shore wrote:
 
 
 On Aug 27, 2011, at 2:20 PM, Bojan Rajkovic wrote:
 
 On Aug 27, 2011, at 2:15 PM, Jonathan Shore 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:
 
 Would 32 vs 64 really make that much of a difference?   I have used 32 bit C 
 applications without any noticable perf difference.
 
 I am worried that there may also be a problem with 2.10.x on other 
 platforms.   It would put my mind at ease if this is just a OSX 
 implementation issue.
 
 I don't know if I can 

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

2011-08-27 Thread Jonathan Shore
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.sh...@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: 589998356.48, time: 9.010549 secs
  class sum: 589998356.48, time: 30.67357 secs
  
  Here is the Ubuntu 11.04 mono 2.6.7 run:
  
  $ mono main.exe 
  Running benchmark
  struct sum: 589998356.48, time: 2.737732 secs
  class sum: 589998356.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.sh...@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@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Stifu
Here are my results when running your benchmark.
My PC: a very old a cheap Windows XP Celeron.
I compiled the application with .NET, and ran it with Mono.
I ran the benchmark 3 times to make sure results were reliable.

Mono 2.6.3:
structs: just below 15 seconds
classes: just below 40 seconds

Mono 2.10.3:
structs: just above 19 seconds
classes: just above 40 seconds

So classes are a tiny bit slower, and structs are a fair bit slower.


Jonathan Shore wrote:
 
 I guess the code was trimmed off in the mailer (I sent in the initial
 note).  Here it is inlined as text:
 
 
 using System;
 
 namespace TestHeap
 {
   
   public interface IDatum
   {
   longTimestamp   {  get; }
   }
   
   
   public struct SDelta : IDatum
   {
   public SDelta (long timestamp, long id, double size, double 
 price,
 double maxsize = 0)
   {
   _timestamp = timestamp;
   _id = id;
   _size = size;
   _price = price;
   _maxsize = maxsize;
   }
   
   
   // Properties
   
   
   public long Timestamp
   {  get { return _timestamp; } }
   
   public long Id
   {  get { return _id; } }
   
   public double Size 
   {  get { return _size; } }
   
   public double Price
   {  get { return _price; } }
   
   public double MaxSize
   {  get { return _maxsize; } }
   
   
   // Variables
   
   private long_timestamp;
   private long_id;
   private double  _size;
   private double  _price;
   private double  _maxsize;
   }
   
   
   public class CDelta : IDatum
   {
   public CDelta (long timestamp, long id, double size, double 
 price,
 double maxsize = 0)
   {
   _timestamp = timestamp;
   _id = id;
   _size = size;
   _price = price;
   _maxsize = maxsize;
   }
   
   
   // Properties
   
   
   public long Timestamp
   {  get { return _timestamp; } }
   
   public long Id
   {  get { return _id; } }
   
   public double Size 
   {  get { return _size; } }
   
   public double Price
   {  get { return _price; } }
   
   public double MaxSize
   {  get { return _maxsize; } }
   
   
   // Variables
   
   private long_timestamp;
   private long_id;
   private double  _size;
   private double  _price;
   private double  _maxsize;
   }
 
   class MainClass
   {
   private static SDelta f (int i)
   {
   return new SDelta (i*1000, i, 1e6, 1.400 + i / 1000);
   }
 
   private static CDelta g (int i)
   {
   return new CDelta (i*1000, i, 1e6, 1.400 + i / 1000);
   }
 
   
   public static void Main (string[] args)
   {
   Console.WriteLine (Running benchmark);
 
   // struct test
   long Tnow1 = DateTime.Now.Ticks;
   
   double sum1 = 0;
   for (int i = 0 ; i  1 ; i++)
   sum1 += f(i).Price;
 
   long Tend1 = DateTime.Now.Ticks;
 
   // class test
   long Tnow2 = DateTime.Now.Ticks;
   
   double sum2 = 0;
   for (int i = 0 ; i  1 ; i++)
   sum2 += g(i).Price;
 
   long Tend2 = DateTime.Now.Ticks;
 
   
   Console.WriteLine (struct sum:  + sum1 + , time:  + 
 ((Tend1 -
 Tnow1) / 1e7) +  secs);
   Console.WriteLine (class sum:  + sum2 + , time:  + 
 ((Tend2 - Tnow2)
 / 1e7) +  secs);
   }
   }
 }
 
 
 On Aug 27, 2011, at 2:34 PM, Bojan Rajkovic wrote:
 
 
 On Aug 27, 2011, at 2:30 PM, Jonathan Shore wrote:
 
 
 On Aug 27, 2011, at 2:20 PM, Bojan Rajkovic wrote:
 
 On Aug 27, 2011, at 2:15 PM, Jonathan Shore wrote:
 
 
 My machine is an old 2006 Mac Pro 1,1  2 x Xeon 5130 (64 bit) running
 OSX lion.   

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

2011-08-27 Thread Jonathan Pobst
You could probably install the Mac OSX 2.6.7 Mono pretty quickly to see 
if it's a difference caused by architectures or by a change between Mono 
versions.

http://www.go-mono.com/mono-downloads/download.html

Jonathan


On 8/27/2011 2: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.sh...@gmail.com
 mailto:jonathan.sh...@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 http://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 http://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: 589998356.48, time: 9.010549 secs
  class sum: 589998356.48, time: 30.67357 secs
 
  Here is the Ubuntu 11.04 mono 2.6.7 run:
 
  $ mono main.exe
  Running benchmark
  struct sum: 589998356.48, time: 2.737732 secs
  class sum: 589998356.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.sh...@gmail.com mailto:jonathan.sh...@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@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Bojan Rajkovic
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: 589998356.48, time: 1.593511 secs
class sum: 589998356.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.sh...@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: 589998356.48, time: 9.010549 secs
  class sum: 589998356.48, time: 30.67357 secs
  
  Here is the Ubuntu 11.04 mono 2.6.7 run:
  
  $ mono main.exe 
  Running benchmark
  struct sum: 589998356.48, time: 2.737732 secs
  class sum: 589998356.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.sh...@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@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Jonathan Shore
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: 589998356.48, time: 1.593511 secs
 class sum: 589998356.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.sh...@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: 589998356.48, time: 9.010549 secs
  class sum: 589998356.48, time: 30.67357 secs
  
  Here is the Ubuntu 11.04 mono 2.6.7 run:
  
  $ mono main.exe 
  Running benchmark
  struct sum: 589998356.48, time: 2.737732 secs
  class sum: 589998356.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.sh...@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@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Stifu
Follow-up:

Reminder, my results were:

Mono 2.6.3:
structs: just below 15 seconds
classes: just below 40 seconds

Mono 2.10.3:
structs: just above 19 seconds
classes: just above 40 seconds

And this is with Mono 2.8.1:
structs: just below 15 seconds
classes: just above 40 seconds

So structs are as fast in Mono 2.6 and 2.8 here, but classes are a tiny bit
slower in 2.8, the same as with Mono 2.10. Looking at my results only, you'd
think there were 2 regressions: classes got slower between 2.6 and 2.8, and
structs got slower between 2.8 and 2.10.


Jonathan Shore wrote:
 
 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: 589998356.48, time: 1.593511 secs
 class sum: 589998356.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
 lt;jonathan.sh...@gmail.comgt; 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: 589998356.48, time: 9.010549 secs
  class sum: 589998356.48, time: 30.67357 secs
  
  Here is the Ubuntu 11.04 mono 2.6.7 run:
  
  $ mono main.exe 
  Running benchmark
  struct sum: 589998356.48, time: 2.737732 secs
  class sum: 589998356.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
 lt;jonathan.sh...@gmail.comgt; 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@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
 
 
 
 ___
 Mono-devel-list mailing 

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

2011-08-27 Thread Rodrigo Kumpera
There are a few points to note here.

Linux with the default GC is much faster than OSX since the laster can't use
fast object allocation.

OSX 2.6 shipped with default parallel mark enabled on OSX, but it was later
disabled due to bugs in boehm.

Given no one is actively working on boehm, this was the best option. My
suggestion is that you try using the new GC
try running 2.10 with --gc=sgen. Performance will be substantially better
for your test.


On Sat, Aug 27, 2011 at 2:27 PM, Jonathan Shore jonathan.sh...@gmail.comwrote:

 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



 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list


___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Jonathan Shore
Rodrigo,

The class based object part of the test is definitely GC sensitive.  However, I 
and others have noted a performance drop for the struct based test (the other 
test in this simple benchmark), which should not be impacted by GC.   I did two 
tests of the struct-based approach, one with 2.6.x OSX and 2.10.x and there was 
a consistent difference.

I also have a linux box, so am trying to build 2.10.x (as the packages 
available are 2.6.x).   I expect, as others have found, that the struct 
performance will be lower in 2.10.x, even on linux.

I will post results later if I manage to build this successfully.

Jonathan

On Aug 27, 2011, at 7:09 PM, Rodrigo Kumpera wrote:

 There are a few points to note here.
 
 Linux with the default GC is much faster than OSX since the laster can't use 
 fast object allocation.
 
 OSX 2.6 shipped with default parallel mark enabled on OSX, but it was later 
 disabled due to bugs in boehm.
 
 Given no one is actively working on boehm, this was the best option. My 
 suggestion is that you try using the new GC
 try running 2.10 with --gc=sgen. Performance will be substantially better for 
 your test.
   
 
 On Sat, Aug 27, 2011 at 2:27 PM, Jonathan Shore jonathan.sh...@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
 
 
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
 
 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Jonathan Shore

On Aug 27, 2011, at 7:09 PM, Rodrigo Kumpera wrote:

 There are a few points to note here.
 
 Linux with the default GC is much faster than OSX since the laster can't use 
 fast object allocation.
 
 OSX 2.6 shipped with default parallel mark enabled on OSX, but it was later 
 disabled due to bugs in boehm.
 
 Given no one is actively working on boehm, this was the best option. My 
 suggestion is that you try using the new GC
 try running 2.10 with --gc=sgen. Performance will be substantially better for 
 your test.

Thanks for the pointer re: sgen.  sgen is dramatically faster.   I will also 
try this on linux.


___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Jonathan Shore

Here are the #s for ubuntu 11.4 on a core i7 box with different versions of 
mono.

Mono 2.6.7 (default Boehm GC)
struct sum: 589998356.48, time: 1.7 secs
class sum: 589998356.48, time: 9.5 secs

Mono 2.6.10 (default Boehm GC)
struct sum: 589998356.48, time: 1.7 secs
class sum: 589998356.48, time: 17.2 secs

Mono 2.6.10 (default Generational GC)
struct sum: 589998356.48, time: 1.7 secs
class sum: 589998356.48, time: 2.0 secs

The linux implementations seem to have the same performance across the 
struct-based benchmarks.   The default Boehm GC in 2.6.10 is about 2x slower 
than the implementation or parameters in 2.6.7.   Finally, the generational GC 
is more than 4x faster than the best Boehm GC time (for this trivial benchmark).

So I with gc=sgen, quite fine with the results.   I'm not sure if sgen is 
stable or not, but perhaps it should be the default on osx.   The osx 
performance is very poor (not shown here).


On Aug 27, 2011, at 7:09 PM, Rodrigo Kumpera wrote:

 There are a few points to note here.
 
 Linux with the default GC is much faster than OSX since the laster can't use 
 fast object allocation.
 
 OSX 2.6 shipped with default parallel mark enabled on OSX, but it was later 
 disabled due to bugs in boehm.
 
 Given no one is actively working on boehm, this was the best option. My 
 suggestion is that you try using the new GC
 try running 2.10 with --gc=sgen. Performance will be substantially better for 
 your test.
   
 
 On Sat, Aug 27, 2011 at 2:27 PM, Jonathan Shore jonathan.sh...@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
 
 
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
 
 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Slide
On Sat, Aug 27, 2011 at 10:27 AM, Jonathan Shore
jonathan.sh...@gmail.comwrote:

 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@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Slide
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.sh...@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: 589998356.48, time: 9.010549 secs
 class sum: 589998356.48, time: 30.67357 secs

 Here is the Ubuntu 11.04 mono 2.6.7 run:

 $ mono main.exe
 Running benchmark
 struct sum: 589998356.48, time: 2.737732 secs
 class sum: 589998356.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.sh...@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@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


[Mono-dev] WCF Error Deserializing SOAP Reply

2011-08-27 Thread blaynebayer
I get the following error when performing a wcf client request to a third
party web service using soap: 

Read by order only possible for encoded/bare format :   at
System.Xml.Serialization.ClassMap.GetElement (Int32 index) 

I have tried adding the web reference both in visual studio and in
MonoDevelop with the same results. 

I am using the latest version of Mono (2.10.4) 

Has anyone seen this before? I have been banging my head against the wall
for hours on this one and haven't got a clue. 

Thanks in advance

--
View this message in context: 
http://mono.1490590.n4.nabble.com/WCF-Error-Deserializing-SOAP-Reply-tp3770895p3770895.html
Sent from the Mono - Dev mailing list archive at Nabble.com.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


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

2011-08-27 Thread Bojan Rajkovic
On Aug 27, 2011, at 2:15 PM, Jonathan Shore 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: 589998356.48, time: 9.010549 secs
   class sum: 589998356.48, time: 30.67357 secs
 
 Here is the  Ubuntu 11.04  mono 2.6.7 run:
 
   $ mono main.exe 
   Running benchmark
   struct sum: 589998356.48, time: 2.737732 secs
   class sum: 589998356.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.sh...@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/

Hi Jonathan, Slide

I suspect this is a difference between x86 and amd64 codegen. Mono on OS X is 
distributed as 32-bit only for now, though there is (somewhat-experimental) 
amd64/Darwin support in master. You can build it following the instructions at 
http://www.mono-project.com/Compiling_Mono_on_OSX. Try benchmarking that.

—Bojan___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] WCF Error Deserializing SOAP Reply

2011-08-27 Thread Atsushi Eno
Hello,

Without code, we cannot give any thoughts.

Atsushi Eno

On 2011/08/26 6:49, blaynebayer wrote:
 I get the following error when performing a wcf client request to a third
 party web service using soap:

 Read by order only possible for encoded/bare format :   at
 System.Xml.Serialization.ClassMap.GetElement (Int32 index)

 I have tried adding the web reference both in visual studio and in
 MonoDevelop with the same results.

 I am using the latest version of Mono (2.10.4)

 Has anyone seen this before? I have been banging my head against the wall
 for hours on this one and haven't got a clue.

 Thanks in advance

 --
 View this message in context: 
 http://mono.1490590.n4.nabble.com/WCF-Error-Deserializing-SOAP-Reply-tp3770895p3770895.html
 Sent from the Mono - Dev mailing list archive at Nabble.com.
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list




___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list