Сколько запусков Java-программы нам нужно, чтобы -разогреть JVM?

Предположим, у меня есть программа на 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?

7
задан JackWM 16 August 2012 в 17:36
поделиться