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