Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=78642 --- shadow/78642 2006-06-14 07:10:48.000000000 -0400 +++ shadow/78642.tmp.4104 2006-06-14 07:10:48.000000000 -0400 @@ -0,0 +1,146 @@ +Bug#: 78642 +Product: Mono: Runtime +Version: 1.0 +OS: Red Hat 9.0 +OS Details: Linux skif 2.4.27 #1 SMP Thu Apr 14 15:25:11 MSD 2005 i686 athlon i386 GNU/Linux +Status: NEW +Resolution: +Severity: +Priority: Wishlist +Component: JIT +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: Bad performance of Mono (JIT-compiler) + +Description of Problem: +Very bad performance of Mono (JIT-compiler) on +loops with simple bit/byte arithmetic. + + +Steps to reproduce the problem: + +Test Application +--------------------------- + +using System; +public class PerformanceTest { + public static void Main ( String[] args ) { + + byte[] array; + int i, j, k; + + DateTime dtime1, dtime2; + //*******************************************// + array = new byte [ 10000 ]; + + for ( i = 0; i < array.Length; i++) + array [ i ] = 170; + + dtime1 = DateTime.Now; + + for ( i = 0; i < array.Length; i++ ) + for ( j = 0; j < array.Length; j++ ) + k = array [ i / 8 ] & (byte) 1 << ( 7 - j % 8 ); + + dtime2 = DateTime.Now; + Console.WriteLine ( "Elapsed time =" + dtime2.Subtract ( dtime1 +).TotalSeconds ); + } +} + +1. >mcs PerformanceTest.cs +2. >mono PerformanceTest.exe + +Actual Results: + +1) Windows 2000 SP 4 , AMD Athlon XP 2500+, 256 Mb RAM, + .NET Framework 2.0 + +E:\Palm>csc PerformanceTest.cs +Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.42 +for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727 +Copyright (C) Microsoft Corporation 2001-2005. All rights reserved. + +E:\Palm>PerformanceTest +Elapsed time =0,28125 + +2) Linux, AMD Athlon(TM) MP 2000+ , 1 Gb RAM + +a) Mono 1.1.13.8 +--------------------- [EMAIL PROTECTED] Palm]$ mono PerformanceTest.exe +Elapsed time =5.663394 [EMAIL PROTECTED] Palm]$ mono -V +Mono JIT compiler version 1.1.13.8, (C) 2002-2005 Novell, Inc and +Contributors. www.mono-project.com + TLS: __thread + GC: Included Boehm (with typed GC) + SIGSEGV : normal [EMAIL PROTECTED] Palm]$ + +b) Mono 1.1.9 +-------------------------------- [EMAIL PROTECTED] serdyuk]$ mono -V +Mono JIT compiler version 1.1.9, (C) 2002-2005 Novell, Inc and +Contributors. www.mono-project.com + TLS: __thread + GC: Included Boehm (with typed GC) + SIGSEGV : normal + Globalization: normal [EMAIL PROTECTED] serdyuk]$ mcs --about +The Mono C# compiler is (C) 2001-2005, Novell, Inc. + +The compiler source code is released under the terms of the GNU GPL + +For more information on Mono, visit the project Web site + http://www.go-mono.com + +The compiler was written by Miguel de Icaza, Ravi Pratap, Martin Baulig, +Marek Safar, Raja R Harinath [EMAIL PROTECTED] Palm]$ mcs PerformanceTest.cs +PerformanceTest.cs(8,17): warning CS0168: The variable `k' is declared but +never used +Compilation succeeded - 1 warning(s) [EMAIL PROTECTED] Palm]$ mono PerformanceTest.exe +Elapsed time =5.662774 + +c) Mono 1.1.8 +------------------------ [EMAIL PROTECTED] Palm]$ mono -V +Mono JIT compiler version 1.1.8, (C) 2002-2005 Novell, Inc and +Contributors. www.mono-project.com + TLS: __thread + GC: Included Boehm (with typed GC) + SIGSEGV : normal + Globalization: normal [EMAIL PROTECTED] Palm]$ mcs --about +The Mono C# compiler is (C) 2001, 2002, 2003 Ximian, Inc. + +The compiler source code is released under the terms of the GNU GPL + +For more information on Mono, visit the project Web site + http://www.go-mono.com + +The compiler was written by Miguel de Icaza, Ravi Pratap, Martin Baulig, +Marek Safar, Raja R Harinath [EMAIL PROTECTED] Palm]$ which mcs +~/m-1.1.8/bin/mcs [EMAIL PROTECTED] Palm]$ mcs PerformanceTest.cs +PerformanceTest.cs(8) warning CS0168: The variable 'k' is declared but +never used +Compilation succeeded - 1 warning(s) [EMAIL PROTECTED] Palm]$ mono PerformanceTest.exe +Elapsed time =5.839955 [EMAIL PROTECTED] Palm]$ mono PerformanceTest.exe +Elapsed time =5.841952 + +So Micosoft .NET outperforms Mono approximately +(considering different processors) in 15 times ! + + +How often does this happen? +Always _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
