Calculando el tiempo de ejecución en Java: Métodos y Ejemplos del mundo real
La medición del tiempo de ejecución del código es esencial para optimizar el rendimiento en aplicaciones Java. Ayuda a los desarrolladores a identificar los cuellos de botella y mejorar la eficiencia. Este artículo explora métodos comunes para calcular el tiempo de ejecución y proporciona ejemplos prácticos.
Usando System.nanoTime()
El método System.nanoTime() ofrece una medición del tiempo de alta resolución. Devuelve el valor actual del temporizador del sistema más preciso disponible, en nanosegundos. Para medir el tiempo de ejecución, registre el tiempo de inicio antes de que el código funcione y el tiempo final después. La diferencia indica el tiempo transcurrido.
Ejemplo:
long startTime = System.nanoTime();]
// code to measure
de largo tiempo finalTime = System.nanoTime();]
duración de largo = tiempo final - startTime;
Usando System.currentTimeMillis()
El método System.currentTimeMillis()] proporciona el tiempo actual en milisegundos. Es menos preciso que pero adecuado para medir duraciónes más largas. Similar al método anterior, registre los tiempos de inicio y final alrededor del bloque de código.
Ejemplo:
long startTime = System.currentTimeMillis();]
// code to measure
de largo tiempo = System.currentTimeMillis();]
duración de largo = tiempo final - startTime;
Usando la clase instantánea de Java
La clase Instant] de la ]]java.time ofrece un enfoque moderno de la medición del tiempo. Proporciona una precisión nanosegundo y es adecuado para la medición de duración.
Ejemplo:
Instant start = Instant.now();
// code to measure
Instant end = Instant.now();
Duración de laDuración = Duración entre(comenzar, terminar);
Ejemplo del mundo real
Supongamos que desea medir cuánto tiempo se tarda en ordenar un gran array. Usando System.nanoTime(), puede implementar lo siguiente:
int[] array = nuevo int[1 000 000];]
// Poblar array
long startTime = System.nanoTime();]
Arrays.sort(array);
de largo tiempo finalTime = System.nanoTime();]
System.out.println("Sorting tomó " + (endTime - startTime) + " nanoseconds.");