Я могу заверить вас, что nanoTime () работает, и если вы хотите избежать разогрева всех точек доступа, вам нужно запустить его 10K раз. Вы должны обнаружить, что элемент 5К довольно быстрый и даже тест 1К - это не очень много. Вам нужно написать тест, который дает воспроизводимые результаты. Если вы этого не сделали, вам нужно исправить тест, потому что он не очень хорош.
Я предлагаю вам попробовать и посмотреть, какие результаты вы получите.
На старом компьютере, что-то вроде 5K случайных значений int занимает около 500 долларов США. Примечание: сортировка отсортированного массива не даст того же результата. (поэтому вы не можете сортировать один и тот же массив каждый раз)
Простой способ запустить тест определенное количество раз, игнорируя первые N запусков, - это сделать.
long start = 0;
for(int r = -warmup; r < runs; r++) {
if (r == 0) start = System.nanoTime();
// do test
}
long avg = (System.nanoTime() - start)/runs;