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 编辑过 |
关键字查询
相关文章
正在查询... |