Карта сайтаСсылкиКонтакты

Как узнать скорость (частоту) Вашего процессора (CPU)

PDF Печать
Статьи

Ниже приведена функция GetCPUSpeed, которая позволит узнать частоту Вашего процессора. Функция не получает никаких параметров, а возвращает число с плавающей точкой. Возвращаемое значение означает частоту Вашего процессора в МГц.

Измеряем скорость CPU

// Получаем скорость CPU в MHz
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 
    mov TimerLo, eax 
    mov TimerHi, edx 
  end; 
  Sleep(DelayTime);
  asm 
    dw 310Fh 
    sub eax, TimerLo 
    sbb edx, TimerHi 
    mov TimerLo, eax
    mov TimerHi, edx 
  end; 
 
  SetThreadPriority(GetCurrentThread, Priority); 
  SetPriorityClass(GetCurrentProcess, PriorityClass);

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

Чтобы получить два знака после запятой, добавьте модуль Math для функции RoundTo (округление) в раздел uses Вашей формы и выполните следующий код:


procedure TForm1.btnSpeedClick(Sender: TObject);
var
  MHz: Double;
begin
  MHz:= GetCPUSpeed;
  MHz:= RoundTo(MHz, -2);
  ShowMessage('Частота Вашего процессора : ' +
                FloatToStr(MHz) + ' МГц');
end;

 

Добавить комментарий


Защитный код
Обновить