У меня есть этот код, который тестирует Calendar.getInstance().getTimeInMillis() vs System.currentTimeMilli():
long before = getTimeInMilli();
for (int i = 0; i < TIMES_TO_ITERATE; i++)
{
  long before1 = getTimeInMilli();
  doSomeReallyHardWork();
  long after1 = getTimeInMilli();
}
long after = getTimeInMilli();
System.out.println(getClass().getSimpleName() + " total is " + (after - before));
Я хочу убедиться, что оптимизация JVM или компилятора не выполняется, поэтому тест будет действительным и на самом деле будет показывать разницу.
Как быть уверенным?
EDIT: я изменил пример кода, чтобы он стал более понятным. Здесь я проверяю, сколько времени требуется для вызова getTimeInMilli() в разных реализациях - Calendar vs System.
