Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   узнать текущую скорость проца (https://forum.antichat.xyz/showthread.php?t=107283)

t04 21.02.2009 03:31

узнать текущую скорость проца
 
На ноутбуке частота проца изменятеся в зависимости от нагруженности проца. Нужно узнать текущую частоту а не максимальную. Все что нашел в инете показывает максимальную частоту или по максимуму загружает проц в момент измерения частоты что ведет к увеличению частоты проца на максимум.

Пжста оч желательно на Delphi.

slesh 21.02.2009 11:11

А чем тебе не подходит код?
Код:

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 секунды

t04 21.02.2009 19:24

При параллельном запуске этого кода и проги CPU-Z данные о частоту разные, CPU-Z показывает 798 MHz и временами она поднимается до 1597 MHz а код показывает в диапозоне 1595-1598 (повесил на таймер и интервалом 500 мсек).

подозреваю что в момент замера частоты проц загружается на максимум и мгновенно возвращается на половину частоты, поэтому CPU-Z не фиксирует постоянной частоты 159х Мгц.


Время: 23:28