longduration= (endTime - startTime); //divide by 1000000 to get milliseconds.
Ответ 2
Я выбираю простой ответ. У меня работает.
longstartTime= System.currentTimeMillis();
doReallyLongThing();
longendTime= System.currentTimeMillis();
System.out.println("That took " + (endTime - startTime) + " milliseconds");
Это работает довольно хорошо. Очевидно, что разрешение составляет всего миллисекунду, вы можете добиться большего с помощью System.nanoTime(). Существуют некоторые ограничения для обоих (фрагменты расписания операционной системы и т.д.), Но это работает довольно хорошо.
Усредните за пару запусков (чем больше, тем лучше), и вы получите неплохую идею.
Ответ 3
Давайте, ребята! Никто не упомянул способ сделать это с помощью Guava (который, возможно, потрясающий):
Приятно то, что Stopwatch .toString() хорошо справляется с выбором единиц измерения времени. Т.е. Если значение маленькое, оно выдаст 38 нс, если оно длинное, оно покажет 5 м 3 с