Czy ktoś mógłby pokazać jakiś prosty przykład odnośnie dwóch funkcji mierzących czas działania poszczególnego fragmentu programu:
QueryPerformanceCounter
QueryPerformanceFrequency
Szukałem na ten temat, ale nigdzie nie mogę znaleźć dobrej strony po polsku gdzie jest podany przykład i wytłumaczone o co chodzi w tym ich argumencie-wskaźniku - (_LARGE_INTEGER*). I czym się one w ogóle różnią ?
A da się jakoś zrobić z tego czas w jednostce czasu mniejszej niż milisekundy :?: To będą chyba mikrosekundy…
Bo mi zależy na bardzo dużej dokładności. Nie chcę programów wrzucać w pętle, które wykonują się 50,000,00 razy, żeby uzyskać wynik w sekundach. (One są takie krótkie, że muszę tak robić, a co za tym idzie muszę czekać niepotrzebnie aż wykona się taka pętla…)
Jeśli nie podzielisz counter przez freq otrzymasz najmniejszą jednostkę jaką da się uzyskać - tick. Na tym opierają się najbardziej dokładne profilery.
PS. Nie otrzymujesz czasu tylko w sekundach/milisekundach, ale w każdej jednostce(dlatego tam jest double, a nie int czy inny typ całkowity).