Java Instrumentation - 有性能下降吗?
使用 Java Instrumentation 是否会减少JVM运行时的性能如何?我用它来获取对象的(浅)大小,我想知道它是否会影响性能。
Does using Java Instrumentation decrease the performance of the JVM running it in any way? I'm using it for getting the (shallow) size of an object, and I'm wondering whether it affects the performance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,任何额外的代码都会减慢执行速度。这在很大程度上取决于代码的作用,如果您只记录对象大小,则性能影响将可以忽略不计(在大多数情况下,如果不是全部情况)。
检测是在类文件加载后直接完成的,因此它仅在第一次发生,对于运行时间较长的程序,它不会产生任何进一步的影响。如果您从虚拟机中删除代理,它肯定不会再产生影响。
Yes, any additional code slows down the execution. It strongly depends what the code does, if you just log object sizes the performance impact will be negligible (in most if not all cases).
The instrumentation is done directly after the class file is loaded, so it happens only the first time, on longer running programs it shouldn't have any further impact. If you remove the agent from you VM it surely will no longer have an influence.