Koodin suoritusajan mittaaminen on tärkeää suorituskyvyn optimoimiseksi Java-sovelluksissa. Se auttaa kehittäjiä tunnistamaan pullonkaulat ja parantamaan tehokkuutta. Tässä artikkelissa tarkastellaan yhteisiä menetelmiä suoritusajan laskemiseksi ja annetaan käytännön esimerkkejä.

Käyttämällä System.nanoTime()

System.nanoTime() -menetelmä tarjoaa korkean resoluution ajan mittauksen. Se palauttaa tarkin käytettävissä olevan järjestelmän ajastimen nykyarvon nanosekuntimäärissä. Suoritusajan mittaamiseksi tallenna aloitusaika ennen koodin kulkua ja sen jälkeen. Ero kertoo aika-ajan kulumisen.

Esimerkki:

pitkä käynnistysAika = System.nanoTime(][

//koodi, jolla mitataan

pitkä loppuTime = System.nanoTime(][

pitkä kesto = endTime - startTime;

Käyttämällä System.currentTimeMillis()

System.currentTimeMillis()[ -menetelmä antaa nykyajan millisekunteina. Se on vähemmän tarkka kuin [ mutta soveltuu pidempien kestojen mittaamiseen. Kuten edellisessäkin menetelmässä, kirjaa alku ja loppuajat koodilohkon ympäri.

Esimerkki:

pitkä käynnistysAika = System.currentTimeMillis(]

//koodi, jolla mitataan

pitkä loppuTime = System.currentTimeMillis(]

pitkä kesto = endTime - startTime;

Javan pikakurssin käyttäminen

Instant -luokan -paketti tarjoaa modernin lähestymistavan aikamittaukseen. Se tarjoaa nanosekunnin tarkkuuden ja soveltuu kestojen mittaamiseen.

Esimerkki:

Välitön alku = pikainen.now(][]

//koodi, jolla mitataan

Pikapää = pikainen.now(][]

Kesto = Kesto [alkaen, lopussa][

Reaalimaailman esimerkki

Oletetaan, että haluat mitata, kuinka kauan suuren ryhmän lajitteluun menee. Käyttämällä System.nanoTime()[, voit toteuttaa seuraavat:

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

// kansoitusryhmä

pitkä käynnistysAika = System.nanoTime(][

Järjestely [järjestäytyminen][[tehtävä]][]

pitkä loppuTime = System.nanoTime(][

System.out.println("Sorting kesti " + (endTime - startTime) + " nanosekuntia.");[