有没有加速Javadoc的方法(需要7分钟)

问题描述:

我正在为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%。 –

使用的doxygen而不是常规MVN的,你使用的是现在。

+0

这是否加快了javadoc? –

使用-T1C运行maven会导致maven尝试并行构建模块,所以如果你有一个多模块项目,最好它会并行地构建每个模块的javadoc(如果你的模块之间的依赖关系图允许) 。

javadoc进程本身是单线程的,所以你将无法使用多个内核来生成单个模块的javadoc。但是,既然你有很多类(可能还有很多@link doclet或类似的东西?),也许javadoc进程可以从扩展堆中受益。你看过GC活动吗? 尝试将此添加到您的配置中,看看它是否有帮助:

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

我可以检查内存大小没有限制。此机器上的默认值应为32 GB。 –