Вниз
Скачать: CL | DM;

Измерение быстродейсвия кода   Найти похожие ветки 

← →
Mirovodin ©   (2002-09-23 15:58) [0]

Кто какие способы знает? Собсвенно необходима максимальная точность. В принципе есть неплохая функция GetTickCount:

T1:=GetTickCount;
...
Анализируемый код
...
T2:=GetTickCount;


Время выполнения T2-T2 в мс, но может кто еще что посоветует? может можно такты процессора получать ?


← →
Anatoly Podgoretsky ©   (2002-09-23 16:03) [1]

Ассемблерная команда RDTSC - точность один тик процессора


← →
RV ©   (2002-09-23 16:05) [2]

не знаю то, или не то
вот когда-то нарыл, не проверял

function GetCPUSpeed: Double;
const

DelayTime = 500;
var

TimerHi : DWORD;
TimerLo : DWORD;
PriorityClass : Integer;
Priority : Integer;
begin

PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);


Sleep(100);


asm
DW 310Fh // rdtsc
MOV TimerLo, EAX
MOV TimerHi, EDX
end;


Sleep(DelayTime);


asm
DW 310Fh // rdtsc
SUB EAX, TimerLo
SBB EDX, TimerHi
MOV TimerLo, EAX
MOV TimerHi, EDX
end;


SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);


Result := TimerLo / (1000.0 * DelayTime);
end;


// Usage ...

LabelCPUSpeed.Caption := Format("CPU speed: %f MHz", [GetCPUSpeed]);


← →
MBo ©   (2002-09-23 16:05) [3]

>может можно такты процессора получать ?
Да, можно QueryPerfomanceCounter или RDTSC (0x0F, 0x31, если не ошибаюсь)
Причем можно для повышения точности учитывать время на вызов (однократный Старт-Стоп)



← →
Mirovodin ©   (2002-09-23 16:23) [4]

Спасибо, нашел рабочий пример:
http://www.delphikingdom.com/treasury/rdtsc.htm




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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
14-69503
symbol
2002-11-02 08:21
2002.11.21
EhLib


1-69335
Дмитрий Баранов
2002-11-11 15:28
2002.11.21
Подключение к событиям IE


14-69571
VDen
2002-11-04 19:24
2002.11.21
Любимый СофтАйс


1-69373
The_Vizit0r!
2002-11-08 22:24
2002.11.21
Может кто подскажет?


3-69140
БОБ
2002-10-31 09:29
2002.11.21
SELECT...




   Наверх