Măsurarea timpului de execuție a codului este esențială pentru optimizarea performanței în aplicațiile Java. Ajută dezvoltatorii să identifice blocajele și să îmbunătățească eficiența. Acest articol explorează metode comune de calcul al timpului de execuție și oferă exemple practice.

Folosind System.nanoTime()

Metoda System.nanoTime() oferă o măsurare a timpului de rezoluție ridicată. Returnează valoarea curentă a cronometrului de sistem cel mai precis disponibil, în nanosecunde. Pentru a măsura timpul de execuție, înregistrează timpul de începere înainte de rularea codului și după sfârșitul perioadei. Diferența indică timpul scurs.

Exemplu:

lung timp de începere = System.nanoTime();

/cod de măsurat

long endtime = System.nanoTime();

durată lungă = timp de sfârșit - timp de pornire;

Folosind System.currentTimeMillis()

Metoda System.currentMillis() oferă timpul curent în milisecunde. Este mai puțin precis decât , dar potrivit pentru măsurarea duratelor mai lungi. Similar metodei anterioare, înregistrează timpul de început și de sfârșit în jurul blocului de cod.

Exemplu:

lung timp de începere = System.curentTimeMillis();]

/cod de măsurat

long endtime = System.curentTimeMillis();]

durată lungă = timp de sfârșit - timp de pornire;

Folosind Java's Instant Class

Pachetul Instant din java.time oferă o abordare modernă a măsurării timpului. Acesta oferă o precizie nanosecundă și este potrivit pentru măsurarea duratelor.

Exemplu:

Incepere instantanee = Instant.now();

/cod de măsurat

Sfârșit instant = Instant.now (;);

Durata de administrare = Durata. între (start, end);]

Exemplu din lumea reală

Să presupunem că doriţi să măsuraţi cât timp este nevoie pentru a sorta un array mare. Folosind System.nanoTime()], puteţi implementa următoarele:

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

/ array populat

lung timp de începere = System.nanoTime();

Arrays.sort (array);]

long endtime = System.nanoTime();

System.out.println("Sorting take " + (endtime - startTime) + " nanosecunde."];]