Просто небольшой поворот, если вы не используете инструментарий и хотите использовать методы времени с низким временем выполнения: выполните его много раз, каждый раз удваивая количество раз, когда оно выполняется до тех пор, пока вы не достигнете секунды или около того. Таким образом, время вызова в System.nanoTime и т. Д. Или точность System.nanoTime сильно влияет на результат.
int runs = 0, runsPerRound = 10;
long begin = System.nanoTime(), end;
do {
for (int i=0; i<runsPerRound; ++i) timedMethod();
end = System.nanoTime();
runs += runsPerRound;
runsPerRound *= 2;
} while (runs < Integer.MAX_VALUE / 2 && 1000000000L > end - begin);
System.out.println("Time for timedMethod() is " +
0.000000001 * (end-begin) / runs + " seconds");
Конечно, оговорки об использовании настенных часов применяются: влияния JIT-компиляции, нескольких потоков / процессов и т. д. Таким образом, вам нужно сначала сначала выполнить метод много , чтобы компилятор JIT выполнял свою работу, а затем повторил этот тест несколько раз и принять самое низкое время выполнения.