PDA

Visualizza la versione completa : [C] tempo di esecuzione di un programma


MrX87
08-03-2008, 22:19
Ciao, mi è stato detto che per sapere il tempo di esecuzione di un algoritmo o di un numero di istruzioni, basta utilizzare una funzione così composta:


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

int main ()
{
float t0, t1;

t0=((float)clock())/CLK_TCK;

/*...............
istruzioni......
..............*/

t1=((float)clock())/CLK_TCK;

printf ("Tempo di esecuzione %.2f\n", t1-t0);

return(1)
}

ma volevo sapere un pò come mai si deve dividere per CLK_TCK...e infine il numero che mi torna...come deve essere interpretato...nel senso...che sono? secondi? millesimi di secondi?

oregon
08-03-2008, 22:26
Facendo una semplice ricerca, da MSDN ...

CLOCKS_PER_SEC, CLK_TCK
The time in seconds is the value returned by the clock function, divided by CLOCKS_PER_SEC. CLK_TCK is equivalent, but considered obsolete.

http://msdn2.microsoft.com/en-us/library/8001551c.aspx

Fabr
08-03-2008, 23:58
o altrimenti usi la funzione GetTickCount() che è anche più semplice

menphisx
09-03-2008, 01:55
Originariamente inviato da Fabr
o altrimenti usi la funzione GetTickCount() che è anche più semplice

ma non è standard :)

Loading