Calcolo del tempo di esecuzione in Java: metodi e esempi del mondo reale

Misurare il tempo di esecuzione del codice è essenziale per ottimizzare le prestazioni nelle applicazioni Java. Aiuta gli sviluppatori a identificare i colli di bottiglia e migliorare l'efficienza. Questo articolo esplora metodi comuni per calcolare il tempo di esecuzione e fornisce esempi pratici.

Utilizzo di System.nanoTime()

Il metodo System.nanoTime()[] offre una misurazione del tempo ad alta risoluzione. Riporta il valore attuale del timer di sistema disponibile più preciso, nei nanosecondi. Per misurare il tempo di esecuzione, registrare il tempo di inizio prima che il codice e il tempo di fine. La differenza indica il tempo trascorso.

Esempio:

long startTime = System.nanoTime();

// codice per misurare[]]

long endTime = System.nanoTime();

durata di lunga durata = endTime - startTime;

Utilizzo di System.currentTimeMillis()

Il metodo System.currentTimeMillis()[]] fornisce l'ora corrente in millisecondi. È meno preciso di [ ma adatto per la misurazione di durate più lunghe.

Esempio:

long startTime = System.currentTimeMillis();

// codice per misurare[]]

long endTime = System.currentTimeMillis();

durata di lunga durata = endTime - startTime;

Utilizzo della classe istantanea di Java

La classe [Instant[[]] []] Java.time[[[]] offre un approccio moderno alla misurazione del tempo.

Esempio:

Inizio immediato = Instant.now();

// codice per misurare[]]

Instant end = Instant.now();

Durata della durata = Durata.tra(start, end);

Esempio di Mondo reale

Supponiamo che si desidera misurare quanto tempo ci vuole per ordinare una vasta gamma. Utilizzando [ System.nanoTime()], è possibile implementare il seguente:

int[] array = new int[1 000 000];[]

// populate array[]]

long startTime = System.nanoTime();

Arrays.sort(array);

long endTime = System.nanoTime();

System.out.println("Sorting ha preso " + (endTime - startTime) + " nanosecondi".]