https://bugzilla.novell.com/show_bug.cgi?id=655380
https://bugzilla.novell.com/show_bug.cgi?id=655380#c0 Summary: String switch statement runs 5x slower on iPhone if compared to simple list of if statements Classification: Mono Product: Mono: Compilers Version: 2.4.x Platform: Other OS/Version: Other Status: NEW Severity: Major Priority: P5 - None Component: C# AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7 Problem observed on iPhone, using custom build of mono 2.4.x. Following string switch code (100x iterations take 0.70 ms on iPhone 4) runs 5x slower on iPhone: switch(arg) { case "Start": counter += 1; break; case "Update": counter += 2; break; case "Special": counter *= 2; break; default: counter -= 1; break; } if compared to following simple "if" statement code (100x iterations take 0.12 ms on iPhone 4): if( arg == "Start" ) counter += 1; else if( arg == "Update" ) counter += 2; else if( arg == "Special" ) counter *= 2; else counter -= 1; Attached zip contains: source cs files. compiled / ildisassembled .dll files. disassembled final ARM binary Reproducible: Always Steps to Reproduce: 1. Add attached code samples to iPhone project 2. Loop switch / if statement test code with 100 iterations 3. Compare execution times of these tests Actual Results: Switch test takes 0.70 ms on iPhone 4 If test takes 0.12 ms on iPhone 4 Expected Results: Switch test takes about the same amount of time as if test -- 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
