回覆列表
-
1 # 小腦缺氧的魚
-
2 # 李昂35
首先,要腦子裡清楚什麼會影響效能。不扯整個系統,單從java程式本身看:io(多次落地),多執行緒同步互斥,cpu多核利用率(stream),快取(threadpool),演算法複雜度,型別轉換(int 《—》Integer)。這些是主要影響效能的考慮點。明白這些,你的問題就不是個問題。
-
3 # 技術之芯
Java 中的 try catch 並不會影響效能。
異常機制1、每個類會跟隨一張異常表(exception table),每一個try catch都會在這個表裡新增一行記錄,每一個記錄都有4個資訊(try catch的開始地址,結束地址,異常的處理起始位,異常類名稱)。
2、當代碼在執行時丟擲了異常時,首先拿著丟擲位置到異常表中查詢是否可以被catch(例如看位置是不是處於任何一欄中的開始和結束位置之間),如果可以則跑到異常處理的起始位置開始處理,如果沒有找到則原地return,並且copy異常的引用給父呼叫方,接著看父呼叫的異常表……以此類推。
結論1、異常如果沒發生,也就不會去查表,也就是說你寫不寫try catch 也就是有沒有這個異常表的問題,如果沒有發生異常,寫try catch對效能是沒有任何消耗的,所以不會讓程式跑得更慢。
2、try 的範圍大小其實就是異常表中兩個值(開始地址和結束地址)的差異而已,也是不會影響效能的。
你想多了,寫程式碼,特別是生產級別的程式碼,可靠性是第一位的。就算做效能最佳化,也要在保證可靠性的前提下。頭一次聽說從 try catch 入手考慮效能最佳化的,你試試生產程式碼不用一點 try 試試