当前位置:  开发笔记 > 编程语言 > 正文

Javac调试开启和关闭是否有性能差异?

如何解决《Javac调试开启和关闭是否有性能差异?》经验,为你挑选了3个好方法。

如果我打开使用Javac生成调试信息,则类文件大20-25%.这对运行Java程序有任何性能影响吗?如果是,在哪些条件和多少.我希望对加载类有一点影响,因为文件较大但这应该是最小的.



1> Paul de Vrie..:

在任何语言中,调试信息都是元信息.它本质上增加了目标文件的大小,从而增加了加载时间.在调试器外部执行期间,实际上完全忽略了此信息.如JVM规范中所述(尽管不清楚),调试信息存储在字节码流之外.这意味着在执行时,类文件没有区别.如果你想确定,试试看:-).

PS.通常用于调试,关闭优化是有价值的.这确实会对性能产生影响.


正确.加载时间受影响但执行时间不受影响.

2> 小智..:

单独关闭调试不应该有所作为.但是一旦关闭调试并启用优化,您应该看到一个区别,因为这会在编译时进行一些静态优化.这样,即使您的热点优化代码在运行时也会变得更快.

但到目前为止,在获得意义完全堆栈跟踪或具有更多用户性能之间的权衡,我总是投票支持堆栈跟踪.毕竟,用户愿意每年花1000美元来获得更快的机器,但不愿意花15分钟给你带来有意义的错误信息来解决他们的问题.

多年以后,我更愿意比用户的1000美元高出15分钟.:)



3> 小智..:

请注意,由于JDK1.3 javac忽略了任何优化标志,因此"编译时优化是不必要的"

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有