Обмен информацией между терминалами через разделяемую память - очень просто и наглядно. - страница 3

 
FreeLance:

Вопрос был не про это - капитан Очевидность! :).

Я как бы хотел узнать, как удалось повысить точность измерения времени работы проги выше миллисекунды?

Приемчики типа - запустим сравниваемое тысячу или миллион раз и бум засекать разницу, а потом утверждать, что разницу во времени следует делить на миллион - меня не устраивает в этом примере.

Здесь большее время обе проги будут спать...а не работать.

Что же мы меряем?

И с такой "точностью"...

;)

FILETIME и всё, что с ней связано. Дискрет 0.0000001 секунды. Но на самом деле такого дискрета не существует. Это, наверно, задел на будущее. Кажется, микросекунды отдаёт.
 

Велки спасибо!

Minimum supported client

Windows 2000 Professional
 

Точно не помню эти API функции давно было. Если надо кому,то разобраться можно.

Вот что в моих кодах Делфи

t1, t2, Res: TLargeInteger;

bOK:BOOL;

Q_T:Extended;


procedure StartTimer;
begin
bOK := QueryPerformanceFrequency(Res);
if bOK then
QueryPerformanceCounter(t1);
end;

procedure StopTimer;
begin
if bOK then
QueryPerformanceCounter(t2);

end;

Начало обработки

StartTimer;

........... Некий код время работы которого хотим замерить

StopTimer;
Q_T:=((t2-t1)/res)*1000000;
StatusBar1.Panels[5].Text:='Время выполнения '+FloatToStrF(Q_T,ffNumber,6,0)+' µs';

 
zhuki:


Q_T:=((t2-t1)/res)*1000000;

StatusBar1.Panels[5].Text:='Время выполнения '+FloatToStrF(Q_T,ffNumber,6,0)+' µs';

Так и думал.

Это и смутило...

;)

Причина обращения: