jonny Skrevet 27. september 2012 Skrevet 27. september 2012 Finnes det noe tilsvarende til Java's System.nanoTime() i ANSI C? Jeg ser ikke helt at noen av funksjonene i time.h gir meg dette. Har prøvd clock(), men det virker som dette kallet gir meg hvor mye CPU-tid prosessen har brukt siden den startet, ikke hvor lang tid det faktisk har gått. Poenget er å ha en funksjon jeg kan bruke til å måle tiden det har gått mellom to "målepunkter" i koden (i Java ville det sett noe slikt ut): long startTime = System.nanoTime(); // diverse CPU-krevende saker... long timeUsed = System.nanoTime() - startTime; System.out.println("Time used: " + (timeUsed / 1000000) + " ms");
Hårek Skrevet 27. september 2012 Skrevet 27. september 2012 Kan du bruke clock_gettime? http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/clibref/qnx/clock_gettime.html
jonny Skrevet 27. september 2012 Forfatter Skrevet 27. september 2012 Ja, takk skal du ha! Litt usikker på hvor portabelt det er, men... måtte ha med -lrt ved linking. Koden for å hente tid i ms ser slik ut: #define CPU_CLOCK_ID CLOCK_REALTIME static long get_time_in_millis() { struct timespec now; clock_gettime(CPU_CLOCK_ID, &now); return now.tv_sec * 1000 + now.tv_nsec / 1000000; }
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå