IBM 에서 내려받은 파일이다.
내용은 이렇다.
실행 속도를 측정할 때
long t1 = System.currentTimeMillis();
task.run(); // task is a Runnable which encapsulates the unit of work
long t2 = System.currentTimeMillis();
System.out.println("My task took " + (t2 - t1) + " milliseconds to execute.");
이렇게 측정하는 것은 제대로 된 속도 측정이 아니라는 것이다.
그 이유는, 코드의 warmup, 동적이 최적화, 등등...JVM 이 어떻게 동작하는지에 따라 여러 변수들이 개입되기 때문이다.
그러면서 글쓴이는 이러한 여러가지 변수를 제거하고 제대로 된 벤치마크 테스트를 할 수 있는 benchmark framework 을 소개하고 있다.
개인적인 경험으로도 단순히 위와 같은 코드로 실행 속도가 설명이 되지 않았던 적이 있어서 반가운 생각이 들었다.
근데 한가지 단점은 프레임웤을 실행해보려고 했더니 JDK 1.6 에 맞춰져 있어서 하위버전의 JVM에서는 동작이 안된다는 점이다. -_-;;;
이 내용은 http://www.ellipticgroup.com/html/benchmarkingArticle.html 에서 찾아볼 수 있다.