|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 7152
|
[C++] Tempo di esecuzione
Vorrei vedere quanto tempo impiega una funzione a fare il suo lavoro. A tal proposito, nel corpo della funzione, come prima istruzione ho messo:
clock_t tempoesecuzione; tempoesecuzione = clock(); e come ultima: String a=(String)(tempoesecuzione/CLK_TCK); Pero' mi viene un numero che non corrisponde ai secnodi trascorsi. Dove è l'errore? Grazie. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
Codice:
#include <time.h> .... clock_t t1, t2; double tempo; t1 = clock (); ....codice da misurare.... t2 = clock (); tempo = ((double) (t2 - t1)) / CLOCKS_PER_SEC;
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 7152
|
Quote:
Funziona! Pero' non ho capito: clock() mi da' il tempo di inizio della funzione?Nel senso: parte da 0 e poi, quando lo catturo mi da' il tempo trascorso?O mi da' il tempo di sistema? Quindi sbagliavo in quanto mi serviva anche il tempo di fine. Infatti fai la differenza tra i due. Grazie |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 7152
|
Quote:
|
|
|
|
|
|
|
#6 | ||
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
Quote:
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
||
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 130
|
Codice:
jcd@big:~$ man clock | sed -ne '/^N^HNO/,+3p'
NOTES
The C standard allows for arbitrary values at the start of the program;
subtract the value returned from a call to clock() at the start of the
program to get maximum portability.
jcd@big:~$
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 7152
|
Quote:
|
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
Codice:
#include <stdio.h>
#include <time.h>
int main()
{
clock_t c;
c = clock ();
printf ("%d\n", c);
return 0;
}
Forse però non hai letto bene il post di Qu@ker. Nella pagina di man di clock c'è una nota importante. Una qualunque implementazione di clock non è obbligata a fornire un valore di 0 all'inizio del processo!!!!!! Potrebbe anche non essere così. Ecco perché, per avere la massima portabilità, è necessario calcolare la differenza tra 2 valori. Solo in questo modo può eliminare eventuali "offset" del valore!
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 7152
|
Quote:
Ok ora ho capito, grazie per i chiarimenti |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:00.



















