Использование System.nanoTime () дважды потребляет менее 1 микросекунды. Я предлагаю вам выполнить какой-либо тест в течение нескольких секунд и взять среднее значение, чтобы ошибка в микросекундах не была значительной.
В целом, я бы посоветовал не делать вещи более сложными, чем нужно.
Чтобы иметь встроенную разминку, я часто игнорирую первые 10% -20% итераций. Что-то вроде
long start;
int count;
for(int i = -count / 5; i < count; i++) {
if (count == 0) start = System.nanoTime();
// do tested code
}
long time = System.nanoTime() - start;
long average = time / count;
System.out.printf("Average time was %,d micro-seconds%n", average / 1000);