ver transcurrido tiempo programa para medir imprimir ejecución ejecucion controlar como clase calcular algoritmo java performance

java - transcurrido - ¿Cómo calcular el tiempo de ejecución de mi programa?



tiempo de ejecucion de un programa (6)

Además del conocido (y ya mencionado) System.currentTimeMillis() y System.nanoTime() también hay una biblioteca ordenada llamada perf4j que también puede ser útil, dependiendo de su propósito, por supuesto.

Posible duplicado:
¿Cómo calculo la ejecución de un método en Java?

Escribí un programa y ahora quiero calcular el tiempo total de ejecución de mi programa de principio a fin.

¿Cómo puedo hacer esto?


Al comienzo de su método principal, agregue esta línea de código:

final long startTime = System.nanoTime();

Y luego, en la última línea de su método principal, puede agregar:

final long duration = System.nanoTime() - startTime;

duration ahora contiene el tiempo en nanosegundos que ejecutó su programa. Puede, por ejemplo, imprimir este valor de esta manera:

System.out.println(duration);

Si desea mostrar el tiempo de duración en segundos, debe dividir el valor entre 1''000''000''000. O si desea un objeto Date : Date myTime = new Date(duration / 1000); A continuación, puede acceder a los diversos métodos de Date para imprimir la cantidad de minutos, horas, etc.


El enfoque general de esto es:

  1. Obtenga el tiempo al comienzo de su punto de referencia, por ejemplo, al comienzo de main() .
  2. Ejecute su código.
  3. Obtenga el tiempo al final de su punto de referencia, digamos al final de main() .
  4. Reste la hora de inicio del tiempo de finalización y conviértalo en unidades apropiadas.

Una pista, mira System.getCurrentTimeMillis() o System.nanoTime() .


Necesita obtener el momento en que se inicia la aplicación y compararlo con el momento en que finaliza la aplicación.

Wen la aplicación comienza:

Calendar calendar = Calendar.getInstance(); // Get start time (this needs to be a global variable). Date startDate = calendar.getTime();

Cuando termina la aplicación

Calendar calendar = Calendar.getInstance(); // Get start time (this needs to be a global variable). Date endDate = calendar.getTime();

Para obtener la diferencia (en milisegundos), haga esto:

long sumDate = endDate.getTime() - startDate.getTime();


Usa el sistema currentTimeMillis () o Sistema. nanoTime () si desea una lectura aún más precisa. Por lo general, milisegundos es lo suficientemente preciso si necesita generar el valor para el usuario. Además, System.nanoTime() puede devolver valores negativos, por lo que es posible que, si está utilizando ese método, el valor de retorno no sea correcto.

Un uso general y amplio sería usar milisegundos:

long start = System.currentTimeMillis(); ... long end = System.currentTimeMillis(); NumberFormat formatter = new DecimalFormat("#0.00000"); System.out.print("Execution time is " + formatter.format((end - start) / 1000d) + " seconds");

Tenga en cuenta que los nanosegundos se usan generalmente para calcular ejecuciones de programa muy breves y precisas, como pruebas unitarias y evaluación comparativa. Por lo tanto, para la ejecución general del programa, son preferibles los milisegundos.


Use System.nanoTime para obtener la hora actual.

long startTime = System.nanoTime(); .....your program.... long endTime = System.nanoTime(); long totalTime = endTime - startTime; System.out.println(totalTime);

El código anterior imprime el tiempo de ejecución del programa en nanosegundos.