![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
2 вопроса
kpo © (2003-02-09 12:22:00)как узнать быстродействие ПК (Скорось CPU)и объем оперативной памяти .желательно исходник
Спрашивающий (2003-02-10 07:30:00) [1]Функция не универсальна дает сбой на некоторых моделях процессоров. Я сталкивался когда на ноутбуке она занижает частоту в 10 раз.
SniZ (2003-02-09 21:57:00) [2]function GetCPUSpeed: Double;
const
DelayTime = 500; // measure time in ms
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
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;
и в каком нибудь абрободчике пишеш
допустим в лабеле1
Label1.Caption := Format("CPU speed: %f MHz", [GetCPUSpeed]);