我有一个大项目,通过ANT编译需要近15分钟。你可以看到我已经用平行机试过了,但没有成功。也尝试了localWorkers,但没有观察到太大的差异。我使用i3处理器和4 GB RAM。请建议所有优化参数快速编译此代码。但它必须是生产质量:)。
<target name="largeProject-gwtc" depends="largeProject-compile" description="GWT compile to JavaScript">
<!--parallel threadsperprocessor="1"-->
<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<pathelement location="../common/src"/>
<pathelement location="../largeProject/src"/>
<pathelement location="build/largeProject/war/WEB-INF/classes"/>
<fileset dir="build/largeProject/war/WEB-INF/lib" includes="*.jar"/>
<pathelement location="${gwt.sdk}/gwt-user.jar"/>
<fileset dir="${gwt.sdk}" includes="gwt-*.jar"/>
</classpath>
<!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
<jvmarg value="-Xmx2048M"/>
<jvmarg value="-XX:MaxPermSize=1024m"/>
<arg line="-war"/>
<arg value="build/largeProject/war"/>
<!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
<arg line=""/>
<arg value="com.test.web.largeProject"/>
</java>
<!--/parallel-->
</target>
不完全是。你可以做一些技巧来加速编译器,但这主要适用于开发(不是生产就绪状态)。
所以不,没有魔法会来救你。GWT编译很慢,这是目前GWT最大的缺点之一。
您可以尝试使用64位JDK,如果可能的话,使用该JDK的7版。我已经在现有的项目上尝试了这个方法,这些项目以前是用32位版本的JDK 6或5编译的,仅仅通过切换到JDK 7 64位,我就有了一些不错的速度提升,有时高达30-40%。另外,如果可能的话,在Windows机器上做这件事,最好是Windows XP 64位,其次是Windows 7 64位。冒着被这个论坛上的人激怒的风险,我要说的是:从我目前所尝试的来看,JDK在Windows上的实现是最快的,其次是Linux,最后是OS X上JDK的实现是最慢的。对于我正在做的事情来说,这可能是正确的,但请尝试一下,为什么不呢?