pomiar czasu, clock_t

0

Witam,
Do pomiaru czasu działania danego programu używam takiego kodu:

#include <cstdio>
#include <ctime>


int main()
{
    clock_t start = ((1000*clock())/CLOCKS_PER_SEC);
   
   //procedurka
   
        printf( "Czas wykonywania: %lu ms\n", clock() - start ); 
    
    getch();
} 

I teraz moje pytanie:
Czy da się jakoś użyć tej funkcji w programie kilkakrotnie? Chodzi mi o to, że robię program, który wykonuje po sobie kilka różnych działań i chciałabym, żeby czas każdego z tych działań był mierzony osobno. Jak próbuję wstawić clock_t kilkakrotnie, to program mi się wiesza.
Wie ktoś jak to rozwiązać?

1

Po pierwsze to co podałeś pokazuje ci cokolwiek tylko nie czas wykonania, powinno być:

#include <ctime>
#include <cstdlib> 
 
int main()
  {
   clock_t start=clock();
 
   //procedurka
 
   printf("Czas wykonywania: %lu ms\n",((1000*(clock()-start))/CLOCKS_PER_SEC)); 
 
   getch();
   return 0;
  }

Wielokrotność:

long MierzCzas()
  {
   static clock_t start=0;
   clock_t teraz=clock();
   long wynik=((1000*(teraz-start)+(CLOCKS_PER_SEC>>1))/CLOCKS_PER_SEC);
   start=teraz;
   return wynik;
  }

MierzCzas();
// wywołanie procedury 1
printf("Czas wykonywania 1 : %lu ms\n",MierzCzas());
// wywołanie procedury 2
printf("Czas wykonywania 2 : %lu ms\n",MierzCzas());
// wywołanie procedury 3
printf("Czas wykonywania 3 : %lu ms\n",MierzCzas());
0

Dziękuję :)

0

A tak ze zwykłej ciekawości, czy mógłby ktoś mi wyjaśnić co oznaczają poszczególne części kodu? :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1