最近閒來無事,就測測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語句呢?猜想是不是因為效率方面的考慮呢,畢...