Скачать MetaTrader 5

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

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

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

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

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

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

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

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

;)

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

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

Minimum supported client

Windows 2000 Professional
igor
1144
igor 2011.03.04 06:56  

Точно не помню эти 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 2011.03.04 09:44  
zhuki:


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

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

Так и думал.

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

;)

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