problema con clock() in C

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
lzzluca
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 316
Iscrizione: lunedì 2 luglio 2007, 1:09
Contatti:

problema con clock() in C

Messaggio 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
piu' forte dell'odio c'e' l'amore, piu' forte dell'amore c'e'... non so, Mike Tyson !
Avatar utente
cont
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 442
Iscrizione: sabato 3 novembre 2007, 22:36
Località: Alta Brianza

Re: problema con clock() in C

Messaggio da cont »

A occhio è sbagliata la printf, prova ad usare %lf invece di %.3f.
se fossi cane bao,
se fossi gatto miao,
se fosse tardi ciao.
lzzluca
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 316
Iscrizione: lunedì 2 luglio 2007, 1:09
Contatti:

Re: problema con clock() in C

Messaggio 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...
piu' forte dell'odio c'e' l'amore, piu' forte dell'amore c'e'... non so, Mike Tyson !
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: problema con clock() in C

Messaggio 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
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti