Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vadim Zhunko
5226
Vadim Zhunko  
FreeLance:

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

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

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

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

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

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

;)

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

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

Minimum supported client

Windows 2000 Professional
igor
1144
igor  

Точно не помню эти 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';

Freelance
1234
Freelance  
zhuki:


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

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

Так и думал.

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

;)

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий