الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حساب سرعة المعالج

بدأه Salah Al-Samawi في 15 مارس 2012 · 0 رد · 373 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1

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;

مثال للاستخدام:

begin

LabelCPUSpeed.Caption := Format('CPU speed: %f MHz', [GetCPUSpeed]);

end;

اللهم احفظ اليمن و أهلة و بلاد المسلمين من كل مستبد و ظالم. و من كل شر!!!

مواضيع مشابهة