https://bugzilla.novell.com/show_bug.cgi?id=655380
https://bugzilla.novell.com/show_bug.cgi?id=655380#c7 --- Comment #7 from Marek Safar <[email protected]> 2010-11-23 08:44:30 UTC --- It was quick test last night, so I have done another run this morning Test program based on IPhone test cases using System; using System.Diagnostics; class C { static void Main() { const int iterations = 1000000; var sw = new Stopwatch (); sw.Start (); for( int tryI = 0 ; tryI < iterations ; ++tryI ) { CheckLongSwitchString("Update"); CheckLongSwitchString("Dummy"); CheckLongSwitchString("Dummy"); CheckLongSwitchString("Update"); } sw.Stop (); Console.WriteLine ("Switch " + sw.ElapsedMilliseconds.ToString ()); sw.Reset (); sw.Start (); for( int tryI = 0 ; tryI < iterations ; ++tryI ) { CheckLongIfString("Update"); CheckLongIfString("Dummy"); CheckLongIfString("Dummy"); CheckLongIfString("Update"); } sw.Stop (); Console.WriteLine ("If " + sw.ElapsedMilliseconds.ToString ()); Console.WriteLine (counter); } static int counter = 0; static void CheckLongSwitchString(string arg) { switch(arg) { case "Start": counter = 1; break; case "Update": counter = 2; break; case "Special": counter = 2; break; default: counter = 1; break; } } static void CheckLongIfString(string arg) { if( arg == "Start" ) counter = 1; else if( arg == "Update" ) counter = 2; else if( arg == "Special" ) counter = 2; else counter = 1; } } on my x86-32 with sgen Switch 289 If 188 nowhere near observed ~5 slowdown on IPhone (I know, I had to bump the number of iterations to actually see any numbers). I could implement if/else for smaller counts but it makes sense only when our if comparison becomes as fast as .net one. BTW, same program on .net 4 (compiled with dmcs) gives Switch 279 If 78 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
