Table of Contents
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.");[