2011-09-11 53 views
0

我有一個大型項目,需要將近15分鐘才能通過ANT進行編譯。你可以看到我已經嘗試平行沒有成功。還試用了當地工人,但沒有觀察到太大的差異。我正在使用4 GB RAM的i3處理器。請建議所有優化參數以便快速編譯此代碼。但它必須是生產質量:)。GWT編譯爲javascript需要很多時間

<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> 
+2

嘿,爲什麼投票呢?你需要發佈投票的理由,這是所有的stackoverflow用戶道德遵循。 – YoK

回答

3

不是。你可以做一些技巧for speeding up compiler,但主要適用於開發(而不是生產就緒狀態)。

因此,不會發生任何魔法來拯救你。 GWT編譯器速度很慢,這是目前GWT最大的缺點之一。

0

關於您可以嘗試的事情,使用64位JDK,如果可能的話,使用版本7的JDK。我已經在現有的項目上嘗試了這些,這些項目以前是用JDK 6或5的32位版本編譯的,只是切換到JDK 7 64位,我有一些不錯的速度提升,有時達到30-40%。另外,如果可能的話,將其中一臺作爲Windows機器,最好是Windows XP 64位或次於Window 7 64位。由於在這個論壇上被人們抨擊的風險,我會這樣說:從迄今爲止我嘗試過的方面來看,JDK實現在Windows上是最快的,其次是Linux,最後是OS X JDK實現速度最慢。這可能只適用於我正在做的事情,但給它一槍爲什麼dontcha。

+0

我實際上已經使用Debian 64bit在Win7 64bit上編譯相同的GWT項目(約佔10%)的性能提升。兩者都在同一臺機器上運行HotSpot 64bit。 – Xorty

+0

正如我所說的那樣,我只是嘗試了一些(幾個)項目的跨OS編譯時間基準測試,而且這些情況在獲勝時更快。我相信其他人在Linux/Debian上會更快。無論如何,看起來切換grom 32到64位jvm有助於提升性能。 –

+0

我使用Win7 64位。但我仍然有時間問題:(。 – YoK