Java中try-catch對性能是否有影響
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
在我們平時寫代碼的時候經常會使用try-catch語句,那么try-catch是否對代碼執行性能有影響呢?有如下的try-catch代碼:
將代碼的class文件使用javap命令來查詢字節碼指令: 判斷try-catch是否影響性能主要考慮點是看字節碼中是否增加了代碼的執行鏈路(代碼的執行行數是否增加)。
字節碼中的goto指令表示try代碼中執行到最后一行代碼之后,如果代碼語句中沒有異常拋出,那么通過goto可以直接跳出try-catch,雖然增加了try-catch后字節碼變多了但是執行的鏈路沒有變長,所以try中沒異常的時候try-catch不會影響性能。 如果try代碼塊中存在異常,一旦出現了異常,jdk的底層需要搜索catch代碼塊、記錄異常鏈路棧等工作,由于這些工作都需要消耗cpu和內存資源,所以在try語句出現異常后,在高并發下存在一定的性能影響。 總結: (1)在try中無異常的時候,try中運行完最后一行代碼中,底層通過goto指令直接跳出了try-catch語句塊,由于執行的鏈路沒有變長,所以性能是不會存在影響。 (2)如果try中有異常拋出,那么jdk的底層需要做一系列的工作,會損耗一定的性能。 該文章在 2024/12/9 14:53:46 編輯過 |
關鍵字查詢
相關文章
正在查詢... |