首页  

JVM异常优化Fast Throw 与 OmitStackTraceInFastThrow 参数     所属分类 jvm 浏览量 1375
JVM对一些特定的异常类型做了Fast Throw优化,如果检测到在代码里某个位置连续多次抛出同一类型异常的话,
C2会决定用Fast Throw方式来抛出异常,而异常Trace即详细的异常栈信息会被清空。
这种异常抛出速度非常快,因为不需要在堆里分配内存,也不需要构造完整的异常栈信息。


默认开启 Fast Throw
关闭 -XX:-OmitStackTraceInFastThrow


JVM只对几个特定类型异常开启Fast Throw

NullPointerException
ArithmeticException
ArrayIndexOutOfBoundsException
ArrayStoreException
ClassCastException


NullPointerException  异常堆栈被优化后,很难排查

 jcmd 68066 VM.flags -all |grep  OmitStackTraceInFastThrow
     bool OmitStackTraceInFastThrow                 = true                                {product}

 jvm参数查看 

上一篇     下一篇
eclipse安装lombok

springboot2 feign 实例

feign消费端注解使用说明

arthas实战之生产环境空指针排查

java并发包JUC简介

身材就是你的名片