Java中启用ShowCodeDetailsInExceptionMessages是否会影响性能?
Java中启用ShowCodeDetailsInExceptionMessages是否会影响性能?
嘿,这个问题问到点子上了,很多开发者在开启这个参数时都会纠结性能开销的问题,我来给你掰扯清楚:
正常运行无异常时:完全没影响
这个参数只会在程序抛出特定异常(比如NullPointerException)的瞬间才会触发额外逻辑,平时程序正常执行的时候,JVM根本不会做任何额外的工作,所以对常规运行性能零影响。抛出异常时有轻微开销,但几乎可忽略
当确实抛出NullPointerException这类支持详细信息的异常时,JVM会额外分析栈帧、定位导致异常的具体变量,生成更明确的错误信息——这一步确实会有一点点性能消耗,但请注意:
异常本身就不应该是程序的常规执行路径,只要你的程序不是频繁、大量抛出这类异常,这点额外开销对整体性能的影响微乎其微,完全比不上它给调试带来的便利:原来的NPE只会告诉你“空指针”,开启后会直接指出是哪个变量在哪个位置为null,能帮你快好几倍定位问题。
总结一下:如果你的程序不是异常高发的情况,放心开启就好,性能代价几乎可以忽略,换回来的调试效率提升非常值。
备注:内容来源于stack exchange,提问作者Knowledge_seeker
相关产品推荐
相关产品推荐

