October 13th, 2008
순 엉터리 JVM startup time 성능 테스트 for CDS
Java 5 부터 지원되는 class data sharing 기능에 대해 실제 start-up 속도 향상이 있는지 테스트를 해 보았다.
방법은 간단하다. -Xshare:off와 -Xshare:auto를 인자로 각각 1000번씩 VM을 실행시키고 시간을 측정한다.
테스트는 이런데서 했다.

-Xshare:auto : 94,084ms
-Xshare:off : 116,629ms
최대한 딴 짓안하고 벤치마크에만 집중토록 했지만 신빙성을 위해 한 번 더 했다.(혹시나 해서 순서를 바꿔봤다)
-Xshare:off : 115,580ms
-Xshare:on : 95,641ms
비슷한 결과가 나오니 그냥 믿을란다.
대략 17%~19%의 시작 속도 향상이 있었다.
누가 물으면 이렇게 답하자.
소스는 이렇다.(중간에 하드코딩된 '-Xshare:'뒤의 값을 바꾸고 재컴파일)
JAVA:
-
package net.hanjava.benchmark;
-
-
import java.io.IOException;
-
import javax.swing.JOptionPane;
-
-
public class BirthToDeath {
-
if(bootCount!=null) {
-
for(int i=0;i<count;i++) {
-
try {
-
rt.exec("/usr/bin/java -Xshare:auto -cp /Users/behumble/Documents/workspace/Benchmark/bin net.hanjava.benchmark.BirthToDeath");
-
e.printStackTrace();
-
}
-
}
-
}
-
}
-
}
P.S) 혹시나 초심자분들 중에 이 말만 철썩같이 믿으시는 분들이 계실까봐.. 사실 정확한 벤치마크는 겁나게 많은 변수가 있고 이 테스트가 충분히 객관적이라고 할 수는 없습니다.