GWT编译为javascript需要很多时间

GWT编译为javascript需要很多时间,java,gwt,ant,Java,Gwt,Ant,我有一个很大的项目,通过ANT编译大约需要15分钟。你可以看到我已经试过了,但没有成功。还对当地工人进行了实验,但没有观察到太大的差异。我正在使用具有4 GB RAM的i3处理器。请建议所有优化参数以快速编译此代码。但它必须是生产质量:) 不太可能。您可以使用一些技巧,但这主要适用于开发(而不是生产就绪状态) 所以不,没有魔法会救你。GWT编译器速度慢,这是目前GWT最大的缺点之一。不太可能。您可以使用一些技巧,但这主要适用于开发(而不是生产就绪状态) 所以不,没有魔法会救你。GWT编译器速度慢

我有一个很大的项目,通过ANT编译大约需要15分钟。你可以看到我已经试过了,但没有成功。还对当地工人进行了实验,但没有观察到太大的差异。我正在使用具有4 GB RAM的i3处理器。请建议所有优化参数以快速编译此代码。但它必须是生产质量:)


不太可能。您可以使用一些技巧,但这主要适用于开发(而不是生产就绪状态)


所以不,没有魔法会救你。GWT编译器速度慢,这是目前GWT最大的缺点之一。

不太可能。您可以使用一些技巧,但这主要适用于开发(而不是生产就绪状态)


所以不,没有魔法会救你。GWT编译器速度慢,这是目前GWT最大的缺点之一。

您可以尝试的方法之一是使用64位JDK,如果可能的话,使用上述JDK的第7版。我曾在现有的项目上尝试过这种方法,这些项目以前是用JDK 6或5的32位版本编译的,只需切换到JDK 7 64位,我就获得了一些不错的速度提升,有时可达30-40%。此外,如果可能的话,可以在Windows机器上执行此操作,最好是Windows XP 64位,或者是Windows 7 64位。冒着被论坛上的人激怒的风险,我要说:从我迄今为止的尝试来看,JDK在Windows上的实现速度最快,其次是Linux,最后是OS X JDK实现速度最慢。对于我正在做的事情来说,这可能是正确的,但是试一试为什么要这么做。

您可以尝试的一种方法是使用64位JDK,如果可能的话,使用上述JDK的第7版。我曾在现有的项目上尝试过这种方法,这些项目以前是用JDK 6或5的32位版本编译的,只需切换到JDK 7 64位,我就获得了一些不错的速度提升,有时可达30-40%。此外,如果可能的话,可以在Windows机器上执行此操作,最好是Windows XP 64位,或者是Windows 7 64位。冒着被论坛上的人激怒的风险,我要说:从我迄今为止的尝试来看,JDK在Windows上的实现速度最快,其次是Linux,最后是OS X JDK实现速度最慢。对于我正在做的事情来说,这可能是真的,但是试一试为什么不试试。

嘿,为什么要否决投票?你们需要公布否决投票的原因,这是所有stackoverflow用户的道德准则。嘿,为什么否决投票?您需要公布否决投票的原因,这是所有stackoverflow用户道德上遵循的。实际上,我使用Debian 64位而不是Win7 64位编译了同一个GWT项目(大约10%)。他们都在同一台机器上运行HotSpot 64位。同意,正如我所说的,我只为一些(少数)项目尝试了跨操作系统编译时间基准测试,而且在win上,他们的速度更快。我相信其他人在Linux/Debian上会更快。无论如何,将Grom32切换到64位jvm似乎有助于提高性能。但我仍然有时间问题:(.实际上,我使用Debian 64位而不是Win7 64位编译了同一个GWT项目(大约10%),这两个项目都在同一台机器上运行HotSpot 64位。同意,正如我所说,我只尝试了一些(几个)跨操作系统编译时间基准测试在win上运行得更快。我相信其他人在Linux/Debian上运行得更快。无论如何,将grom 32切换到64位jvm似乎有助于提高性能。我使用的是Win7 64位。但我仍然对所需时间有问题:(。
<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>