Java 컴파일시 병렬 실행이 시간상 선형 성장을하는 이유



Answers

Question
time javac Main.java                                      --> 0m1.050s
time javac Main.java & javac Main.java                    --> 0m1.808s
time javac Main.java & javac Main.java & javac Main.java  --> 0m2.690s
time javac Main.java & ... 8 time                         --> 0m8.309s

javac 명령을 병렬로 실행하고 javac 명령이 증가 할 때마다 ~1 sec 추가되어 모든 javac 명령이 완료됩니다.

왜 선형 성장이 시간입니까?

모든 javac 프로세스가 실행 중일 때 locks 에 어떤 종류가 포함되어 있습니까? 그렇다면 어떻게 그것을 극복하여 시간이 선형 성장하지 못하게합니까?

추신 : 위의 single core machine , double core machine , 4 core machine 모두 같은 행동을 보여 주 시도했다.

PS2 : 환경 RedHat7 , javac 1.7.0_79




Links