Главная страница
    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.028 c
11-65404
SPeller
2003-01-31 05:11
2003.10.20
Баг с кнопками


1-65426
Islander
2003-10-07 17:48
2003.10.20
Как подгрузить ресурс из DLL?


4-65667
NVjed
2003-08-14 12:53
2003.10.20
блокировка системы


11-65402
FIj
2003-01-31 04:40
2003.10.20
Апдейт КОЛа


14-65605
michael
2003-10-01 14:16
2003.10.20
Что значит слово packed в объявлениях





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский