异常处理的性能开销

Posted 小台的IT备忘录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理的性能开销相关的知识,希望对你有一定的参考价值。

执行一个catch代码块和抛出一个异常花费是很高的,这个过程中的性能损耗主要是由于当创建一个异常时要获得线程栈的一个快照。

抛出异常首先要创建一个新的对象Throwable类的构造函数调用名为fillInStackTrace的方法,fillInStackTrace方法检查堆栈,收集调用跟踪信息。

由于在处理过程中创建了一个新的对象,所以说只要有异常被抛出,JVM就必须调整调用堆栈,系统资源开销也就增大了。

以上是关于异常处理的性能开销的主要内容,如果未能解决你的问题,请参考以下文章

读Java性能权威指南(第2版)笔记04_ Java SE API技巧下

不要把异常当做业务逻辑,这性能可能你无法承受

Java 线程数过多会造成什么异常?

Java 线程数过多会造成什么异常?

潜在的异常会带来开销吗?

系统的一个异常SQL的处理