Avatar billede ejldk Nybegynder
22. november 2007 - 20:58 Der er 5 kommentarer og
1 løsning

Elapsed time

Hej Eksperter!
Bliver desværre nødt til at spørge jer til råds igen!
Har java en indbygget funktion som kan bruges som "stopur"?
Altså, jeg har en metode, hvor jeg gerne vile finde ud af hvor lang tid der går fra start til slut.
Eksempel:
public void beregning();
{
startUr();
kode, kode, kode;
mere kode, mere kode;
stopUr();
printTid();
}

Altså at den starter uret i starten af metoden, og stopper uret i slutningen af metoden, og derefter smider tiden ind i en variabel som så kan udskrives, og bruges efter behov.

Er der en måde man kan gøre det på?
Avatar billede ejldk Nybegynder
22. november 2007 - 21:05 #1
Kunne forestille mig at det var noget med at start(); gemmer et tidspunkt, og stop(); gemmer ligeledes et tidspunkt, og regner så forskellen mellem tid1 og tid2.
Men kan ikke gennemskue hvordan det skulle gøres.
Avatar billede arne_v Ekspert
22. november 2007 - 21:08 #2
Der er flere måder.

Jeg plejer at bruge noget a la:

long t1 = System.currentTimeMillis();
// gør noget
long t2 = System.currentTimeMillis();
System.out.println(((t2 - t1) / 1000.0) + " seconds");
Avatar billede ejldk Nybegynder
22. november 2007 - 21:23 #3
Endnu engang 1000 tak;)
Det virker bare som det skal!
Smid et svar, så smider jeg nogle point!
Avatar billede arne_v Ekspert
22. november 2007 - 21:28 #4
System har i nyere Java versioner også en System.nanoTime() som man evt. kan bruge.

Og et svar.
Avatar billede jakoba Nybegynder
23. november 2007 - 02:30 #5
Lad være at stole for meget på den slags tider. Nutildags er der er næsten ingen operativsystemer der ikke multitasker, du ved aldrig hvilket andet program der tager en timeslot (eller hvornår Javas VM starter en garbage collect). De tider du får kan variere meget fra kørsel til kørsel.
Avatar billede arne_v Ekspert
23. november 2007 - 04:15 #6
Hvis man kører noget tilpas længe (f.eks. > 1 minut) og der ikke kører nogle
tunge ting på maskinen så er det såmænd ganske brugbare resultater man får.

Man kan evt. prøve at lade programmet måle det samme 5 gange og se om tiden er
den samme for alle kørsler. Er de det så er der pæne chancer for at man er OK.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester