Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
1-65536
Raduga
2003-10-08 09:28
2003.10.20
вызов инспектора объектов в своей программе


3-65378
Denkop
2003-09-30 14:01
2003.10.20
Тормозит FireBird


6-65568
ZHK
2003-08-19 13:20
2003.10.20
Почему telnet пропускает символы?


3-65336
Alex
2003-09-29 09:55
2003.10.20
Перенос базы из Access-a в MSSQL


1-65433
Андрей Л.
2003-10-07 15:11
2003.10.20
Очистка всех Edit ов на форме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский