Предположим, у меня есть программа на Java Test.class
. Я хочу измерить время его выполнения. Я написал оболочку, чтобы сделать это, как показано ниже:
class RunTest {
public static void main(String[] args) {
long sum = 0;
int iterations = 20;
int warmupNum = 10;
for(int i=0; i<iterations; i++){
long start = System.nanoTime();
Test.main(args);
long end = System.nanoTime();
if( i > warmupNum )
sum += end - start;
}
System.out.println("ave: "+sum/(iterations-warmupNum));
}
}
Вот как выбрать warmupNum
, чем больше, тем лучше? Насколько большой достаточно? Является ли это «стандартным/общим» способом измерения производительности программы Java?