que tienen el código que está probando Calendar.getInstance().getTimeInMillis()
vs System.currentTimeMilli()
:cómo asegurarse de que ninguna JVM y optimización del compilador se produce
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));
quiero para asegurarse de que ninguna JVM o compilador optimización sucede, por lo que la prueba será válida y realmente mostrará la diferencia.
¿Cómo estar seguro?
EDIT: Cambié el ejemplo de código por lo que será más claro. Lo que estoy comprobando aquí es cuánto tiempo se necesita para llamar a getTimeInMilli() en diferentes implementaciones: Calendario vs Sistema.
Gracias; eso era justo lo que necesitaba para que Java muestre "con precisión" la diferencia de eficiencia entre los algoritmos O (1), O (n) y O (n^2) para una demostración en el aula :-) En Eclipse, puede poner eso en la configuración Ejecutar/Argumentos/VM. –