Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.20;
Скачать: CL | DM;

Вниз

Как замерить микросекунды?   Найти похожие ветки 

 
Vadim S   (2003-10-07 14:03) [0]

Как замерить микросекунды?


 
MBo ©   (2003-10-07 14:09) [1]

QueryPerformanceCounter

поточнее - RDTSC команда процессора


 
Владислав ©   (2003-10-07 14:13) [2]

> MBo © (07.10.03 14:09) [1]

Кстати, а как показания RDTSC можно перевести в микросекунды?


 
NailMan ©   (2003-10-07 14:26) [3]

Наверно так:

Function GetProcessorFrequency:Int64;
Var L,N:Int64;Last:Cardinal;
begin
Last:=GettickCount;
asm
push eax
push edx
xor eax,eax
xor EDX,edx
RDTSC
mov dword ptr L[0],eax
mov dword ptr L[4],edx
pop edx
pop eax
end;
repeat
until (Gettickcount-Last)>=1000;
asm
push eax
push edx
xor eax,eax
xor EDX,edx
RDTSC
mov dword ptr N[0],eax
mov dword ptr N[4],edx
pop edx
pop eax
end;
Result:=N-L;
end;


Ну и делим на 1000000 - получаем число тиков в микросекунде.

А далее делим подсчитанное время процесса(в тиках) на величину микросекунды(в тиках).

Типа вот так.


 
NAlexey ©   (2003-10-07 14:48) [4]


procedure TForm1.Button1Click(Sender: TObject);
var
t1, t2, Fr: Int64;
Res: Double;
I: Integer;
begin
QueryPerformanceFrequency(Fr);
QueryPerformanceCounter(t1);
for I := 0 to 10000 do
Null;
QueryPerformanceCounter(t2);
Res := (t2-t1)/Fr;
ShowMessage(IntToStr(Round(1000000 * (t2 - t1)/Fr)) + " ns");
end;


 
Vadim S   (2003-10-07 15:40) [5]

У меня на D5
Function GetProcessorFrequency:Int64;
не хочет компилить говорит
Inline assembler error


 
Владислав ©   (2003-10-07 16:31) [6]

> Vadim S (07.10.03 15:40) [5]

Скорее всего из за этого: RDTSC. Поищи на этом форуме машинный код команды и вставь его так DB х, где машинный код.


 
me   (2003-10-07 20:06) [7]

Waitable Timer (NT/W2k/XP)


 
Anatoly Podgoretsky ©   (2003-10-07 20:26) [8]

Vadim S (07.10.03 15:40) [5]
Для Д5 вместо RDTSC - dw $310F


 
Владислав ©   (2003-10-08 09:08) [9]

> NailMan © (07.10.03 14:26) [3]
> NAlexey © (07.10.03 14:48) [4]

Спасибо, кстати! :)



Страницы: 1 вся ветка

Текущий архив: 2003.10.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-65477
l2t_guest
2003-10-08 17:21
2003.10.20
Вопрос по variant


1-65535
denis24
2003-10-08 09:59
2003.10.20
tedit


3-65357
glow
2003-09-23 10:15
2003.10.20
Снова SQL


1-65547
qq
2003-10-07 11:49
2003.10.20
dnd ltd


1-65512
Viktor Kushnir
2003-10-07 19:27
2003.10.20
Hot Keys