Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

jak mierzyć czas wykonywania algorytmu

Ostatnio zmodyfikowano 2011-01-28 15:37
Autor Wiadomość
markon
Temat założony przez niniejszego użytkownika
» 2011-01-27 21:45:37
pobieram do zmiennej czas działania aplikacji przed rozpoczęciem liczenia silni(iteracyjnie)
po policzeniu silni wyświetlam obecny czas działania aplikacji - zmienna do której pobrałem czas przed rozpoczęciem działania aplikacji.


clock_t start = clock();
//tu licze silnie
 printf( "%ld czas:", static_cast<long>(clock() - start)*CLOCKS_PER_SEC/1000);

z tym, że dla 5 silnia liczy 0 ms, nie wiem czy to możliwe, poza tym wolałbym to w sekundach, jeśli macie jakiś na to pomysł to powiedzcie
P-27257
DejaVu
» 2011-01-28 00:58:51
clock pod windows ma dokładność pomiarową chyba ~1/24sek, czyli nie jesteś w stanie za pomocą wspomnianej funkcji pomierzyć czasu dokładniej. Z resztą jeżeli komputer ma 3GHz proca to znaczy że może wykonać 3mld cykli w ciągu sekundy co znaczy, że w ciągu 0,001sek jest w stanie wykonać 3 mln cykli. Oznacza to tym samym, że jeżeli mnożenie zajmuje załóżmy 5 cykli to 600 tys mnożeń komputer jest w stanie wykonać w ciągu 1ms. Co tu chcesz pomierzyć?
P-27276
markon
Temat założony przez niniejszego użytkownika
» 2011-01-28 14:41:22
ok, teraz dla rekurencyjnej silnia(5) liczy mi jedną milisekundę - to prawdopodobny czas,
jeśli natomiast w miejsce wywołania wstawię funkcję Sleep(25) /*ta funkcja przyjmuje ilość milisekund*/ to rzeczywiście licznik wypisze 25 ms.
edit: silnia(1) też wykonuje się jedną ms, możliwe to jest?
P-27297
DejaVu
» 2011-01-28 15:11:22
Zadajesz takie pytania jakbyś nie rozumiał co Ci napisałem do tej pory.
P-27302
Elaine
» 2011-01-28 15:37:49
clock pod windows ma dokładność pomiarową chyba ~1/24sek
Prawie. Z bardzo skomplikowanego testu (wypisywanie wartości zwróconej przez clock) wyniknęło, że jest to 1/400 sekundy.
P-27305
1 « 2 »
Poprzednia strona Strona 2 z 2