LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Java中try-catch对性能是否有影响

admin
2024年12月9日 8:40 本文热度 451

在我们平时写代码的时候经常会使用try-catch语句,那么try-catch是否对代码执行性能有影响呢?有如下try-catch代码:

public class MyTest {    public static void main(String[] args) {        try {            System.out.println("---------------123-------------");            int i = 1;            int j= 0;            int m = i / j;            System.out.println(m);        } catch (Exception e) {            e.printStackTrace();        }    }}

将代码的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 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved