if與switch的性能比較


前言

之前學習Java時,遇到了個問題,有點糾結。當ifswitch都實現相同的功能時,該改采用哪種方法實現?
我並不懂得如何准確測量兩者之間的性能區別,便在OlineJudge上找條該類型的題,來測試兩者的性能結果
好,廢話不多說,看圖

下面是運行結果,前者為if的,后者為switch的

switch的實現

if的實現


雖然兩者的結果相比,占用內存相同,運行時間相差較大,
但是OnlineJudge所用的數據是否相同、數據量多大及是否相同等等都不清楚。

之后翻查了一些其他資料,switch的執行速度並不是一直都超過if,當數據量達到萬級或者百萬級時,if的執行速度反而會比switch更快

但是試問一下,大多數方法的控制條件數量都不會超兩位數吧?
所以相比追求更快的運行速度,還不如選擇合適的方法實現該功能。

if在某些情景更適合表達邏輯,而switch也有它的優勢。就我知道而言,switch的控制表達式依次與case后的值匹配。遇到相對應的值時,執行對應的執行體,沒有break時繼續往下執行。

所以我們可以根據case標簽的執行頻率排列case標簽的順序進一步提高速度


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM