Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
узнать текущую скорость проца |

21.02.2009, 03:31
|
|
Участник форума
Регистрация: 10.01.2007
Сообщений: 140
Провел на форуме: 246020
Репутация:
105
|
|
узнать текущую скорость проца
На ноутбуке частота проца изменятеся в зависимости от нагруженности проца. Нужно узнать текущую частоту а не максимальную. Все что нашел в инете показывает максимальную частоту или по максимуму загружает проц в момент измерения частоты что ведет к увеличению частоты проца на максимум.
Пжста оч желательно на Delphi.
|
|
|

21.02.2009, 11:11
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
А чем тебе не подходит код?
Код:
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 секунды
|
|
|

21.02.2009, 19:24
|
|
Участник форума
Регистрация: 10.01.2007
Сообщений: 140
Провел на форуме: 246020
Репутация:
105
|
|
При параллельном запуске этого кода и проги CPU-Z данные о частоту разные, CPU-Z показывает 798 MHz и временами она поднимается до 1597 MHz а код показывает в диапозоне 1595-1598 (повесил на таймер и интервалом 500 мсек).
подозреваю что в момент замера частоты проц загружается на максимум и мгновенно возвращается на половину частоты, поэтому CPU-Z не фиксирует постоянной частоты 159х Мгц.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|