jonny Skrevet 27. september 2012 Del 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"); Lenke til kommentar
Hårek Skrevet 27. september 2012 Del Skrevet 27. september 2012 Kan du bruke clock_gettime? http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/clibref/qnx/clock_gettime.html Lenke til kommentar
jonny Skrevet 27. september 2012 Forfatter Del 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; } Lenke til kommentar
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å