2016-12-16 39 views
23

我正在爲2,509個班的模塊構建一個Javadoc。目前每分鐘需要7分鐘或6個文件。有沒有加速Javadoc的方法(需要7分鐘)

我已經試過

mvn -T 1C install 

然而javadoc只使用1個CPU。有沒有辦法使用更多和/或加速?我使用的是Oracle JDK 8更新112。我的開發機器有16個內核和128 GB的內存。

運行的飛行記錄器,我可以有隻有一個線程main

enter image description here

對於那些有興趣我用下面的選項。

<plugin> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <configuration> 
     <additionalJOptions> 
      <additionalJOption>-J-XX:+UnlockCommercialFeatures</additionalJOption> 
      <additionalJOption>-J-XX:+FlightRecorder</additionalJOption> 
      <additionalJOption>-J-XX:StartFlightRecording=name=test,filename=/tmp/myrecording-50.jfr,dumponexit=true</additionalJOption> 
      <additionalJOption>-J-XX:FlightRecorderOptions=loglevel=debug</additionalJOption> 
     </additionalJOptions> 
    </configuration> 
</plugin> 

注:一種解決方法是做

-Dmaven.javadoc.skip=true 
+0

配置javadoc進程。我會認爲這可能是IO界限。所以你可以將源文件加載到ramdisk或ssd上。 –

+0

@ElliottFrisch一個好主意,磁盤佔用率爲3%,但CPU幾乎是100%(一個cpu)。我可以使用Flight Recorder進行配置,但會更新。 –

+0

CPU可能處於IO等待和100%。 –

回答

-3

使用的doxygen而不是常規MVN的,你使用的是現在。

+0

這是否加快了javadoc? –

1

使用-T1C運行maven會導致maven嘗試並行構建模塊,所以如果你有一個多模塊項目,最好它會並行地構建每個模塊的javadoc(如果你的模塊之間的依賴關係圖允許) 。

javadoc進程本身是單線程的,所以你將無法使用多個內核來生成單個模塊的javadoc。但是,既然你有很多類(可能還有很多@link doclet或類似的東西?),也許javadoc進程可以從擴展堆中受益。你看過GC活動嗎? 嘗試將此添加到您的配置中,看看它是否有幫助:

<additionalJOption>-J-Xms2g</additionalJOption> 
<additionalJOption>-J-Xmx2g</additionalJOption> 
+0

我可以檢查內存大小沒有限制。此機器上的默認值應爲32 GB。 –

相關問題