funkcja time() w milisekundach

0

Witam

Chcę zbadać czas wykonywania się pewnych operacji i używam do tego funkcji time(). Jednak zwraca ona sekundy a ja chciałbym uzyskać wynik w milisekundach. Da się to zrobić?

0

Da się. Użyj clock(): http://www.cplusplus.com/reference/clibrary/ctime/clock/

Otrzymasz ilość taktów zegara jaka upłynęła od uruchomienia programu. To co to w zasadzie oznacza jest zależne od implementacji, ale jest makro CLOCKS_PER_SEC, które pozwala przeliczyć tę wartość na sekundy. (Trzeba dzielić) Tak otrzymany wynik możesz przeliczyć na dowolną wielokrotność sekundy.

0

OK, dzięki. Jednak mały kłopot używam kody do zliczania czasu

 
clock_t st,kon;
st=clock();
//mój algorytm
kon=clock();
long czas=(long)(kon-st); 

zawsze zwraca mi zero. Gdy wypisałem sobie wartości zmiennej st i kon to zawsze mają wartość 10000

0

Widocznie twój algorytm wykonuje się w zbyt krótkim czasie. Odpal go między wywołaniami clock np. 10000 razy i wynik podziel przez ilość odpaleń.

0

Zgadza się, algorytm dla małych danych wykazuje czas 0 a po ich zwiększeniu jest ok. Dzięki za pomoc

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