JVM解惑:消失的异常堆栈,log中打印异常堆栈为空
生活随笔
收集整理的這篇文章主要介紹了
JVM解惑:消失的异常堆栈,log中打印异常堆栈为空
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近線上發(fā)現(xiàn)很多異常沒有堆棧信息,只有一句描述,如下:
java.lang.NullPointerException: null排查問題時受到了一些阻礙。然后發(fā)現(xiàn)無論是在本地環(huán)境還是測試環(huán)境,堆棧信息都可以正常打印,使用的是同一份日志配置文件。
百思不得其解,遂Google之,發(fā)現(xiàn)一篇文章:JVM解惑:消失的異常堆棧,log中打印異常堆棧為空
驗證后,果然是由于Hotspot的優(yōu)化:
JIT編譯器對異常進行了優(yōu)化,當(dāng)代碼中的某個位置拋出同一個異常很多次后,
JIT服務(wù)端編譯器(C2)會將其優(yōu)化成拋出一個事先編譯好的、類型匹配的異常,異常堆棧信息就看不到了。
豁然開朗,記錄以備忘
總結(jié)
以上是生活随笔為你收集整理的JVM解惑:消失的异常堆栈,log中打印异常堆栈为空的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机恢复出厂设置在哪里 答案在这里
- 下一篇: idea使用jar包依赖,替换掉项目依赖