Przykład użycia funkcji clock.

0

Znalazłem w internecie taki przykład użycia funkcji clock:

 #include <cstdio> 
#include <ctime>

void czekaj( int iMilisekundy )
{ 
      clock_t koniec = clock() + iMilisekundy * CLOCKS_PER_SEC /1000.0; 
      while( clock() < koniec)
            continue;
}

double obliczSekundy( clock_t czas ) 
{ 
        return static_cast < double >( czas ) / CLOCKS_PER_SEC; 
}

int main() 
{ 
      printf( "Uruchomilem aplikacje. Uplynelo %.4fsek od jej startu.\n", obliczSekundy( clock() ) ); 
      czekaj( 250 ); 
      printf( "Uplynelo %.4fsek od startu aplikacji.\n", obliczSekundy( clock() ) ); 
      czekaj( 150 ); 
      printf( "Uplynelo %.4fsek od startu aplikacji.\n", obliczSekundy( clock() ) ); 
      return 0;
}

I moje pytanie poco w funkcji czekaj dzielić przez 1000.0?

2

Zignoruj kompletnie ten przykład który nic nie robi I jednocześnie pożera czas procesora.

Chcesz poczekać, to uśpij wątek na tyle, ile potrzebujesz. Dla lepszego efektu zaznajom się z nagłówkami <thread> oraz <chrono>

  • to co odczuwasz to skutek używania magicznych liczb w kodzie.
    Niezbyt fajne, co?
0

CLOCKS_PER_SEC to ilość tyknięć zegara na sekundę, a parametr iMilisekundy jest w milisekundach.

1

Ponad to co powiedzieli poprzednicy, ten pomysł nie będzie działał zgodnie z zamierzeniami w aplikacji wielowątkowej - clock() mierzy sumaryczny czas pracy wszystkich wątków programu, a nie zegara ściennego.

0
spartanPAGE napisał(a):
  • to co odczuwasz to skutek używania magicznych liczb w kodzie.
    Niezbyt fajne, co?

Pisząc o magicznych liczbach chodzi o makro CLOCKS_PER_SEC ?

2

Nie, chodzi mi o magiczne 1000 o które pytałeś.

0

Dzięki wszystkim za wytłumaczenie.

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