Sunday, April 22, 2012

Mengecek Kecepatan Processor (CPU clock speed) dalam satuan Mhz

 
function GetCpuSpeed: Comp;
var 
   t: DWORD;
   mhi, mlo, nhi, nlo: DWORD; 
   t0, t1, chi, clo, shr32: Comp; 
 begin 
   shr32 := 65536; 
   shr32 := shr32 * 65536; 
 
   t := GetTickCount; 
   while t = GetTickCount do begin end; 
   asm 
     DB 0FH 
     DB 031H 
     mov mhi,edx 
     mov mlo,eax 
   end; 
 
   while GetTickCount < (t + 1000) do begin end;
   asm
     DB 0FH
     DB 031H 
     mov nhi,edx 
     mov nlo,eax 
   end; 
 
   chi := mhi; 
   if mhi < 0 then chi := chi + shr32; 
 
   clo := mlo; 
   if mlo < 0 then clo := clo + shr32; 
 
   t0 := chi * shr32 + clo; 
   chi := nhi; 
   if nhi < 0 then chi := chi + shr32; 
   clo := nlo; 
   if nlo < 0 then clo := clo + shr32; 
   t1 := chi * shr32 + clo; 
   Result := (t1 - t0) / 1E6; 
 end;



Penggunaan :

procedure TForm1.Button3Click(Sender: TObject);
begin
MessageDlg(Format('%.1f MHz', [GetCpuSpeed]), mtConfirmation, [mbOk], 0);
end;

No comments:

Post a Comment