Я иду с простым ответом. Работы для меня.
long startTime = System.currentTimeMillis();
doReallyLongThing();
long endTime = System.currentTimeMillis();
System.out.println("That took " + (endTime - startTime) + " milliseconds");
Это работает вполне хорошо. Разрешение очевидно только к миллисекунде, можно добиться большего успеха с System.nanoTime (). Существуют некоторые ограничения обоим (части расписания операционной системы, и т.д.), но это работает вполне прилично.
Среднее число через несколько выполнений (больше лучше) и Вы получите достойную идею.