Miten voin tarkastaa, kauanko jonkun koodin suorittamiseen menee aikaa? Esimerkiksi jos lataan jonkun tiedoston Java-koodista käsin, niin miten voin tsekata, kauanko tuo lataaminen kestää? Antaako oikeansuuntaisen tulosken jos laittaa alko ja loppu päähän koodia currenTimemillis() ja sitten lopussa tsekkaa erotuksen?
koodin nopeus
Asus
2308
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 2
Vanhimmat
Javasta en tiedä mitään, mutta tolla tavalla se onnistuu, siis koodin alussa otat talteen ajan ja lopussa myös ja lasket sen erotuksen, mutta kannattaa esim 10 kertaa suorittaa koodi, ja laskea siitä keskiarvo, näin saadaan minimoitua heittelyt jne.... Mutta yhestäkin suorituskerrasta näkee onko koodi hidas vai ei.
> mutta kannattaa esim 10 kertaa suorittaa koodi, ja laskea siitä keskiarvo, näin saadaan minimoitua heittelyt jne....
Tai sitten ei.
Riippuu lähinnä siitä missä koodia on tarkoitus käyttää. Tuo nimittäin saattaa aiheuttaa esim. sen että 90% tavarasta haetaankin välimuistista eikä levyltä, tms. Jos ohjelmalla sitten luetaankin vaikka satunnaisia tiedostoja tunnin välein, niin keskiarvo saattaa heittää todella paljon alkuperäisestä.
Mielestäni paras ratkaisu on pyörittää koodia jonkin aikaa lopullisessa käytössä tai sitä vastaavassa ympäristössä ja ottaa noita aikoja ylös (ja tallettaa johonkin, tms). Tosin noidenkin käsittely hidastaa, joten jos todella aikakriittisestä hommasta on kyse (ilmeisesti jos sekunnin sadasosia pitää hioa), joten kannattaa ne sitten "lopullisesta" versiosta poistaa.