|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
|
[C] Calcolare il tempo trascorso tra un'operazione e l'altra
Devo fare la cosa in topic, pensavo che si potesse fare tipo:
(butto giù il codice) time_t t1,t2; float dif=0; quando viene fatta la operazione 1 faccio anche time(&t1); quando viene fatte l'operazione 2 faccio time(&t2); poi faccio dif=difftime(t2,t1); Da quello che ho letto in giro in teoria la difftime mi dovrebbe dare la differenza in secondi invece quando la stampo con printf("%f",dif); mi stampa tutti 0.00000. Mi sapete dire perchè o un modo alternativo per fare questa cosa? |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Alternative ce ne sono ma non sono "portabili", nel senso che dipendono dal sistema operativo. In ambiente Windows ci sono diversi modi per ottenere l'informazione del tempo con risoluzione inferiore al secondo. La più semplice è la funzione Win32 GetTickCount(), leggi <qui> . In ambiente Linux esiste invece la funzione gettimeofday().
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Un'alternativa e' quella di continuare ad utilizzare la time(), a patto che tu possa ripetere l'operazione. Spesso e' possibile.
E' chiaro che se metti l'operazione/sequenza di operazioni in un ciclo che la ripete 1000000 di volte (ammesso, ovviamente che sia possibile), la time() ti dara' i microsecondi... Quando posso, uso questo sistema che mi permette di evitare di capire come si chiamano oggi le primitive di timing sul sistema in uso... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:39.



















