TDateTime ... czas skokowy ? [Delphi]

Witam!

Pod windą XP napisałem w Delphi program porównujący czasy algorytmów sortowania … jednak trochę dziwią mnie ich początkowe wartości.

Otóż w miarę wzrostu wartości (mówimy o małych ilościach - do 60 tys. ; oraz sortowaniach przez kopcowanie, scalanie, shella) powin\ien czas wzrastac od 0ms stopniowo … jednak czas wzrasta skokowo (co 15 lub 16ms) … czy to jest uwarunkowane od komputera, procesora, itp ?

Nigdy i nigdzie nie spotkałem (w żadnych programach u mnie w Delphi) czasu 0

Jakies wyjasnienie ekspertów ??

Pozdrawiam!

Możliwe, że to czego używasz ma za małą rozdzielczość zegara i dlatego zwraca te 15-16ms, a nie 1ms :wink:

EDIT: małe niedopatrzenie.

TDateTime w Delphi jest synonimem Double. Data jest kodowana w sposób następujący jeden dzień to jedynka; godziny, minuty, sekundy i milisekundy kodowane jako ułamek tej liczby. Więc niema co się dziwić że skok jest co 15 ms. Dla pobrana czasu z dokładnością do ms radze korzystać z funkcji API, jest tam nawet taka która zwraca czas aplikacji, czyli ile czasu proces tak naprawę pracował.

W Windows największą rozdzielczość ma QueryPerformanceCounter, a w Unixach AFAIK gettimeofday.

Fiołek dzięki - kojarzyłem istnienie takiej funkcji, ale nie wiedziałem pod jaką nazwą szukać.

Pozdro!