切换到 Java 7 时,构建时间显著增加

2022-09-04 23:13:03

我们在构建过程中使用Java,因为它用于通过Ivy解析/发布我们的依赖项。

没问题,我们也没有使用它2年,直到我们尝试将Java 6 Update 26升级到版本7 Update 7,而本地开发人员PC(WinXP)上的构建现在需要2个小时才能完成,而不是10分钟!

PC上没有其他变化,使其成为我们关注的绝对目标。

有谁知道为什么Java版本7会产生这样的速度差异的原因?

更新:构建过程是基于NAnt的,因此Java.exe是从NAnt脚本调用的,在命令(DOS)窗口中运行。


答案 1

我正在使用JDK 7u7,通过调整一些VM选项,我注意到性能更好。

你可以尝试使用G1GC和AgressiveOpts来帮助编译时间。

按照我在编辑器中使用的设置进行操作:

-Xss8m 
-Xmn256m 
-Xms512m 
-Xmx1024m 
-XX:PermSize=256m 
-XX:MaxPermSize=512m 
-XX:+UseG1GC 
-XX:+OptimizeStringConcat 
-XX:+UseStringCache 
-XX:+AggressiveOpts

可以在 VM 选项链接中找到每个选项的说明。

我希望它有帮助。


答案 2

根据我的经验,Java 7在速度和兼容性方面是一个巨大的倒退。我发现不仅编译速度较慢,而且运行JRE的速度也较慢。

我也遇到了运行eclipse的重大问题(是的,我使用了更新7)。

从我的角度来看,Java 7中没有什么我需要的。我喜欢ForkJoinPool,并且可以将其作为Java 6的附加库。

也许Java 8会更好。


推荐