Pagina 1 di 1

problema con clock() in C

Inviato: sabato 6 settembre 2008, 10:28
da lzzluca
Ciao a tutti!
Ho un piccolo problema con clock() e da solo non riesco a venirne a capo.
Ho deciso, per calcolare il tempo impiegato da una funzione, di utilizzare la funzione clock() ( il programmino e' scritto in C):

Codice: Seleziona tutto

#include <time.h>
#include <stdio.h>

int main 
{
    clock_t t1, t2;

    t1 = clock(); // start
    
    /********* funzione *************/

    t2 = clock(); // stop

    printf("\nTempo impiegato: %.3f secondi\n",( (double)(t2 - t1) / ( (double)CLOCKS_PER_SEC) ) );

    return 0;
}
Il problema e' che t1 e t2 valgono sempre zero: sembra che la funzione clock() non faccia altro che inizializzarli appunto a zero. Anche mettendo una sleep(2) prima di t2 = clock() (ovvero una pausa di due secondi prima di salvare il tempo in t2), t2 = clock() vale zero (ho controllato il suo valore da gdb).
Sapete aiutarmi?
Luca

Re: problema con clock() in C

Inviato: sabato 6 settembre 2008, 10:56
da cont
A occhio è sbagliata la printf, prova ad usare %lf invece di %.3f.

Re: problema con clock() in C

Inviato: sabato 6 settembre 2008, 12:31
da lzzluca
non mi sono curato molto dei valori della prinf; come ho scritto, tramite il debugger gdb, leggo i valori di t1 e t2 dopo le relative chiamate a clock() e valgono zero! ???
La printf, anche se la scrivessi bene, restituirebbe quindi zero...

Re: problema con clock() in C

Inviato: martedì 9 settembre 2008, 14:51
da crap0101
hai provto a usare time(t) invece di clock?

mi pare che clock() segni la quantità di tempo di cpu, non quello "reale", forse è per questo che segna sempe zero.
Per esempio, facendo partire il prog con time .... vedi come segna il tempo:
marco@gNS:~/Desktop$ time ./pp
1

Tempo impiegato: 0.000 secondi

real    0m9.262s
user    0m0.000s
sys    0m0.008s