Просмотр полной версии : узнать текущую скорость проца
На ноутбуке частота проца изменятеся в зависимости от нагруженности проца. Нужно узнать текущую частоту а не максимальную. Все что нашел в инете показывает максимальную частоту или по максимуму загружает проц в момент измерения частоты что ведет к увеличению частоты проца на максимум.
Пжста оч желательно на Delphi.
А чем тебе не подходит код?
function GetCPUSpeed: double;
const
DelayTime = 500; // время измерения в милисекундах
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;
Код вычисляет производительность проца по кол-ву тактов которое делает проц за определенный момент времяни. Если частота будет занижена, то и тактов он сделает меньше, что сразу будет заметно.
Код настроен так что считается кол-во тактов за 0,5 секунды
При параллельном запуске этого кода и проги CPU-Z данные о частоту разные, CPU-Z показывает 798 MHz и временами она поднимается до 1597 MHz а код показывает в диапозоне 1595-1598 (повесил на таймер и интервалом 500 мсек).
подозреваю что в момент замера частоты проц загружается на максимум и мгновенно возвращается на половину частоты, поэтому CPU-Z не фиксирует постоянной частоты 159х Мгц.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot