2016-12-16 11 views
23

2,509 클래스 모듈을위한 Javadoc을 구축 중입니다. 현재는 초당 7 분 또는 6 개의 파일이 필요합니다.Javadoc의 속도를 높일 수있는 방법이 있습니까 (7 분 소요)

나는

mvn -T 1C install 

그러나 javadoc는 1 개 CPU를 사용하여 시도했다. 더 많은 것을 사용하고/또는 속도를 높일 수있는 방법이 있습니까?

Oracle JDK 8 업데이트 112을 사용하고 있습니다. 내 dev 머신은 16 코어와 128GB의 메모리를 가지고 있습니다. 내가 할 수있는

실행 비행 기록은 내가 다음과 같은 옵션을 사용하여 관심있는 사람들을 위해 하나 개의 스레드 만 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> 

참고 : 한 가지 해결 방법은 당신이 지금 사용하고있는, 일반 MVN 대신

-Dmaven.javadoc.skip=true 
+0

는 javadoc의 과정을 프로필 : 이 도움이 있는지, 구성이 추가보십시오. 아마도 IO 경계라고 가정합니다. 그래서 당신은 램 디스크 나 ssd에 소스를로드 할 수 있습니다. –

+0

@ElliottFrisch 좋은 생각은 디스크가 3 % 사용 중이지만 CPU가 거의 정확히 100 % (1CPU)입니다. 그래도 Flight Recorder로 프로파일 링 할 수 있습니다. –

+0

CPU가 IO 대기 및 100 % 대기 중일 수 있습니다. –

답변

-3

사용 doxygen이 작업을 수행하는 것입니다.

+0

javadoc의 속도가 빨라 집니까? –

1

-T1C를 사용하여 maven을 실행하면 maven이 모듈을 병렬로 빌드하려고하므로 멀티 모듈 프로젝트가있는 경우 모듈 간 종속성 그래프에서 허용하는 경우 병렬로 각 모듈의 javadoc을 빌드합니다. .

javadoc 프로세스 자체는 단일 스레드이므로 여러 개의 코어를 사용하여 단일 모듈의 javadoc을 생성 할 수 없습니다.

그러나 많은 클래스 (및 가능한 많은 @link 도크 렛 또는 이와 유사한 것)가 있기 때문에 javadoc 프로세스가 확장 된 힙의 이점을 누릴 수 있습니다. GC 활동을 살펴 보셨습니까?

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

메모리 크기가 제한되지 않았는지 확인할 수 있습니다. 이 컴퓨터의 기본값은 32GB 여야합니다. –