我有一个Java项目的Maven概要文件,它在Hudson CI服务器上进行最终构建时被激活。
目前,这个概要文件的唯一定制是对Maven编译器插件的定制,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
</configuration>
</plugin>为了最大化性能,最终构建还应该对Java编译器进行任何其他调整或优化吗?
发布于 2010-11-19 03:36:53
假设您在Sun (Hotspot) JVM上运行,所有优化都在JVM中进行。
因此,指定<optimize>true</optimize>不会做任何事情。
并且指定<debug>false</debug>只是删除了调试符号。这将略微减小您的JARfile大小,但使跟踪生产问题变得更加困难,因为您的堆栈跟踪中没有行号。
我要指定的一件事是JVM兼容性设置:
<source>1.6</source>
<target>1.6</target>发布于 2010-11-19 03:32:35
你甚至不应该这样做- javac中的优化已经禁用了很长一段时间,IIRC。基本上,JIT负责几乎所有的优化,而javac优化在某些情况下实际上损害了这一点。
如果你想调优性能,你应该看看别的地方:
发布于 2010-11-19 03:49:36
对于我们基于maven的构建,我不使用<debug>false</debug>,而是使用<debuglevel/>设置调试选项,它允许更精细的控制{参见javac option -g }。
https://stackoverflow.com/questions/4218721
复制相似问题