java - If(condition) else or if(condition), is there a difference in performance when using break? -
the question little bit ambiguous, these 2 equivalent in assembly code/performance wise:
public void example{ do{ //some statements; if(condition) break; //some statements; }while(true); } versus:
public void example{ do{ //some statements; if(condition){ break; }else{ //some statements; } }while(true); }
they equivalent , should result in same bytecode representation. hence performance-wise, same.
if, else , break branch instructions. in case, break terminate loop , programme goes different branch. if status not met, branch taken, exactly same branch taken else.
example using javac compiler:
int = system.in.read(); { system.out.println("a"); if (a > 0) { break; } else { system.out.println("b"); } } while (true); both , without else produce following:
getstatic java/lang/system/in ljava/io/inputstream; invokevirtual java/io/inputstream/read()i istore_1 getstatic java/lang/system/out ljava/io/printstream; :label1 ldc "a" invokevirtual java/io/printstream/println(ljava/lang/string;)v iload_1 ifle <label2> goto <label3> getstatic java/lang/system/out ljava/io/printstream; :label2 ldc "b" invokevirtual java/io/printstream/println(ljava/lang/string;)v goto <label1> homecoming :label3 java performance if-statement
No comments:
Post a Comment