View Full Version : tempo esecuzione[c]
pavimento
31-08-2005, 20:40
Ciao
Come si fa a calcolare il tempo di esecuzione di un programma in C?
esiste una funzione apposta che calcola il tempo dall'inizio alla fine?
E poi esiste una funzione che calcola il tempo di una parte sola del programma,da un punto a un altro?
grazie
ciao
franksisca
31-08-2005, 20:55
injava c'è la funzione System.currentTimeMillis()(mi sembra che si scriva così), quindi credo che cia sia anche in C, che non conosco, aspetta che i GURU del C si facciano VIVI :D
In c dipende anche dal sistema operativo su cui stai. Per esempio su unix c'è gettimeofday() che è molto semplice da usare. In ogni caso se vuoi fare un po di profiling seriamente devi usare un programma apposito. Si fa molto prima.
ciao ;)
BlueDragon
31-08-2005, 21:17
injava c'è la funzione System.currentTimeMillis()(mi sembra che si scriva così), quindi credo che cia sia anche in C, che non conosco, aspetta che i GURU del C si facciano VIVI :D
Non sono un GURU del C, cmq...
Simile a System.currentTimeMillis(), ma in secondi anziché millisecondi, c'è la funzione time della libreria omonima.
Vedi http://www.cplusplus.com/ref/ctime/time.html
Altrimenti per calcoli più accurati c'è anche la funzione clock, sempre nella stessa libreria time.h..:)
Vedi http://www.cplusplus.com/ref/ctime/clock.html
fantoibed
31-08-2005, 21:53
Come si fa a calcolare il tempo di esecuzione di un programma in C?Per questi scopi è meglio utilizzare (IMHO) i timer multimediali ad alta risoluzione piuttosto che i timer comuni. Se lavori in ambiente win32 ti consiglio di guardarti GetTickCount, TimeGetTime, QueryPerformanceCounter, QueryPerformanceFrequency, ecc.... :)
Marinelli
31-08-2005, 21:57
gettimeofday() è portabile sotto Windows grazie a questo codice:
#ifdef _WIN32
#include <sys/timeb.h>
#include <sys/types.h>
#include <winsock.h>
void gettimeofday(struct timeval* t,void* timezone)
{ struct _timeb timebuffer;
_ftime( &timebuffer );
t->tv_sec=timebuffer.time;
t->tv_usec=1000*timebuffer.millitm;
}
#endif
Ciao :)
pavimento
02-09-2005, 19:46
ciao
risolto con gettimeofday
grazie a tutti
ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.