Berekenen van de uitvoeringstijd in Java: Methodes en Real-world Voorbeelden

Het meten van de uitvoeringstijd van code is essentieel voor het optimaliseren van de prestaties in Java-toepassingen. Het helpt ontwikkelaars knelpunten te identificeren en de efficiëntie te verbeteren. Dit artikel onderzoekt gemeenschappelijke methoden om uitvoeringstijd te berekenen en biedt praktische voorbeelden.

Gebruik van System.nanoTime()

De Systeem.nanoTime() methode biedt hoge resolutie tijdmeting. Het geeft de huidige waarde van de meest nauwkeurige beschikbare systeem timer terug, in nanoseconden. Om de uitvoeringstijd te meten, de starttijd voor de code loopt en de eindtijd daarna. Het verschil geeft de verstreken tijd aan.

Voorbeeld:

lange startTijd = System.nanoTime();

///code voor meting

lange eindtijd = System.nanoTime();

lange duur = eindtijd - starttijd;

Gebruik van System.currentTimeMillis()

De Systeem.currentTimeMillis() methode geeft de huidige tijd in milliseconden. Het is minder precies dan maar geschikt voor het meten van langere duur. Net als de vorige methode, registreren de begin- en eindtijden rond het codeblok.

Voorbeeld:

lange startTijd = System.currentTimeMillis();

///code voor meting

lange eindtijd = System.currentTimeMillis();

lange duur = eindtijd - starttijd;

Java's Instant Class gebruiken

Het Instant-klasse uit het java.time-pakket biedt een moderne benadering van tijdmeting. Het biedt nanosecondeprecisie en is geschikt voor het meten van duur.

Voorbeeld:

Instant start = Instant.now();

///code voor meting

Instant end = Instant.now();

Duur van de looptijd = Duur.tussen(start, einde);

Voorbeeld van de werkelijkheid

Stel dat je wilt meten hoe lang het duurt om een grote array te sorteren. Met Systeem.nanoTime() kun je het volgende implementeren:

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

///populate array

lange startTijd = System.nanoTime();

Arrays.sort(array);

lange eindtijd = System.nanoTime();

Systeem.out.printin("Sorting take " + (endTime - startTime) + " nanoseconden");