ďťż

Ładny brzuch

Witam mam dość głupie pytanie, ale nie moge znaleść odpowiedzi. Otóż potrzebuje sprawdzić czas wykonywania pewnego algorytmu. Zrobiłem to tak ze pobrałem czas t_time a,b; przy pomocy funkcji a= time(NULL), potem odjołem wynik przed i po wykonaniu algorytmu. Niestety zwraca mi on wynik w sekundach a ja bym chciał w milisekundach. ktoś wie może jak to przerobić żeby było w milisekundach, bo mój algorytm wykonuje sie za szybko i jest 0 prawie zawsze dopiero jak wprowadziłem 100 000 danych to był czas 45 a nie 0 :D




Niestety zwraca mi on wynik w sekundach a ja bym chciał w milisekundach
Podzielić wynik przez 1000?

Podzielić wynik przez 1000?

Jeżeli już, to pomnożyć, ale to nic nie da bo on chce mieć z dokładnością do milisekundy, a nie sekundy. Czyli jak np. w milisekundach będzie 400 to będzie miał 0 sekund, a 0*1000=0.
Użytkownik Capellini edytował ten post 10 kwiecień 2007, 14:57
W windzie wystarczy GetTickCount().



Ale ja pod linuxem pisze, zrobiłem to przy pomocy clock_t tylko że wtedy mam wyniki i zawsze na końcu są 3 zera, nie wiem czemu.

nie wiem jak na linuksie ale na windowsie jesli chcesz miec dokladny winik mozesz zrobic tak

#include <windows.h> /* ... */ __int64 time1, time2, delta, frequency; QueryPerformanceFrequency((LARGE_INTEGER*)&frequency); QueryPerformanceCounter((LARGE_INTEGER*)&time1); // jakis algorytm... Sleep(1000); QueryPerformanceCounter((LARGE_INTEGER*)&time2); delta=(time2-time1)/(frequency/1000); // teraz mozesz wyswietlic wynik std::cout << delta << "ms" << std::endl << frequency;

wynik mozesz miec maksymalnie z dokladnoscia do 1/frequency sekundy
(to dosyc duzo, np u mnie 1/3579545 s)
ale w tym wypadku zaokraglilem do milisekundy

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •