ClassNotFoundException 对JVM的性能影响

新手上路,请多包涵

如题所述,请问有人知道有哪些影响吗?如何验证呢?可以提供一些参考资料吗?

阅读 974
1 个回答

没啥影响……

你要非说有啥影响的话,就是堆上额外多出几个对象呗……

如果你只是单纯的抛出并捕获(catch 里是空的、什么都不写),其实对性能影响微乎其微 ———— JVM 也是在不断进化的嘛。现在来说的话保存堆栈状态造成的开销已经很低了,某些情况下甚至会直接优化成类似 goto 的结构。

但如果你要在 catch 里干点儿啥,比如展开堆栈信息(StackTrace),那影响就会很大了,降个几十倍都很正常;如果再有个日志搜集器 logger 在工作,性能会进一步降低。


至于“如何验证”,这跟其他 Benchmark 没什么不同,你自己构建出两种场景(实验组和对照组),分别跑个一百万次观察一下执行时间以及 GC 情况不就行了,注意先预热。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题