С учетом следующего кода:
public class Test{
static int[] big = new int [10000];
public static void main(String[] args){
long time;
for (int i = 0; i < 16; i++){
time = System.nanoTime();
getTimes();
System.out.println(System.nanoTime() - time);
}
}
public static void getTimes(){
int d;
for (int i = 0; i < 10000; i++){
d = big[i];
}
}
}
Выход показывает тенденцию к уменьшению продолжительности:
171918
167213
165930
165502
164647
165075
203991
70563
45759
43193
45759
44476
45759
52601
47897
48325
Почему один и тот же код в getTimes
выполняется менее чем через треть после того, как он был выполнен 8 раз или более? (Edit: Это не всегда происходит в 8-й раз, но с 5-го по 10-й)