teniendo en cuenta este ejemplo:Java para pregunta de desempeño bucle
public static void main(final String[] args) {
final List<String> myList = Arrays.asList("A", "B", "C", "D");
final long start = System.currentTimeMillis();
for (int i = 1000000; i > myList.size(); i--) {
System.out.println("Hello");
}
final long stop = System.currentTimeMillis();
System.out.println("Finish: " + (stop - start));
}
vs
public static void main(final String[] args) {
final List<String> myList = Arrays.asList("A", "B", "C", "D");
final long start = System.currentTimeMillis();
final int size = myList.size();
for (int i = 1000000; i > size; i--) {
System.out.println("Hello");
}
final long stop = System.currentTimeMillis();
System.out.println("Finish: " + (stop - start));
}
Hará esto que cualquier diffrence? En mi máquina, el segundo parece funcionar más rápido, pero no sé si es realmente preciso. ¿El compilador optimiza este código? Podría pensar que lo haría si la condición de bucle es un objeto inmutable (por ejemplo, matriz de cadenas).
Si desea medir * el tiempo * transcurrido (y desea que sea preciso) debe usar 'System.nanoTime()' BTW. –
recordará ese buen punto. – kukudas