switch 與 if else 效能區別

2021-06-21 22:33:58 字數 809 閱讀 3079

最近閒來無事,就測測switch 和if else的效能區別

我的電腦是i3的。

public static void main(string args)  else if (k == 2)  else if (k == 3)  else if (k == 4)  else if (k == 5)  else if (k == 6) 

} long end1 = system.currenttimemillis() - start;

long start2 = system.currenttimemillis();

for (int i = 0; i < 1000000; i++)

} long end2 = system.currenttimemillis() - start2;

system.out.println(end1 + "===" + end2);

}

當k=1的時候

4832===4731

當k=2的時候

4937===4812

當k=3的時候

4982===4813

當k=4的時候

5039===4812

當k=5的時候

5062===4888

當k=6的時候

5070===4882

從以上結果來看,排除計算機的其他任務處理,if else 隨之要判斷的考後,那麼那所花費的時間就越多,switch基本上就沒有什麼變化,

如果想優化**的話,還是盡量採用採用switch。但是對於小流量的,還是差不多的

switch跟if else效能比較

switch和if else效能比較 switch和if else相比,由於使用了binary tree演算法,絕大部分情況下switch會快一點,除非是if else的第乙個條件就為true.說實話 我也沒有深入研究過這個問題的根源只是在實際開發中 沒有人會去用很多很多else if的都是用 sw...

switch與if else的區別

單從jvm的執行效率上講的話,switch的執行效率要高於if語句 原因在於 switch語句在執行時,首先會生成乙個 跳轉表 來指示實際的case分支的位址,而這個 跳轉表 的索引號與swtich中的case值是相等的,這樣的話,switch就不用像if else那樣,遍歷所有的條件,直至找到正確...

switch與ifelse的效率問題

switch與if.else 的執行的效率問題 今天讀一前輩的程式,發現其在串列埠中斷裡面為了分析協議的報文型別,在中斷函式裡面使用if.else語句。因為報文型別在現在看來只有兩種,以後有可能還會增加,不確定。本人以為這樣用有些不妥,為什麼不用switch語句呢?猜想是不是因為效率方面的考慮呢,畢...