ForumSevgisi.Com

  ForumSevgisi.Com > ForumSevgisi Webmaster Bölümü > Webmaster Genel

Webmaster Genel Webmasterlıkla ilgili Her şeyin Paylaşıldığı Bölüm.


Cool işlemcinin kullanim yuzdesini bulmak

Webmasterlıkla ilgili Her şeyin Paylaşıldığı Bölüm.


Cool işlemcinin kullanim yuzdesini bulmak

ForumSevgisi Webmaster Bölümü Kategorisinde ve Webmaster Genel Forumunda Bulunan Cool işlemcinin kullanim yuzdesini bulmak Konusunu Görüntülemektesiniz,Konu İçerigi Kısaca ->> Cool işlemcinin kullanim yuzdesini bulmak Cool işlemcinin kullanim yuzdesini bulmak Kod: const SystemBasicInformation = 0; SystemPerformanceInformation = 2; SystemTimeInformation = ...

Kullanıcı Etiket Listesi

Yeni Konu aç  Cevapla
LinkBack Seçenekler Stil

Okunmamış 09 Nisan 2015, 16:19   #1
Durumu:
Çevrimdışı
Kaf_Dağı - ait Kullanıcı Resmi (Avatar)
Arastirmaci
Üyelik tarihi: 26 Ekim 2014
Şehir: ~~~~~~
Mesajlar: 1.130
Konular: 710
Beğenilen: 168
Beğendiği: 334
www.forumsevgisi.com
Standart Cool işlemcinin kullanim yuzdesini bulmak

Cool işlemcinin kullanim yuzdesini bulmak

Cool işlemcinin kullanim yuzdesini bulmak

Kod:
        const
  SystemBasicInformation = 0; 
  SystemPerformanceInformation = 2; 
  SystemTimeInformation = 3; 
 
type
  TPDWord = ^DWORD; 
 
  TSystem_Basic_Information = packed record
    dwUnknown1: DWORD; 
    uKeMaximumIncrement: ULONG; 
    uPageSize: ULONG; 
    uMmNumberOfPhysicalPages: ULONG; 
    uMmLowestPhysicalPage: ULONG; 
    uMmHighestPhysicalPage: ULONG; 
    uAl********Granularity: ULONG; 
    pLowestUserAddress: Pointer; 
    pMmHighestUserAddress: Pointer; 
    uKeActiveProcessors: ULONG; 
    bKeNumberProcessors: byte; 
    bUnknown2: byte; 
    wUnknown3: word; 
  end; 
 
type
  TSystem_Performance_Information = packed record
    liIdleTime: LARGE_INTEGER; {LARGE_INTEGER}
    dwSpare: array[0..75] of DWORD; 
  end; 
 
type
  TSystem_Time_Information = packed record
    liKeBootTime: LARGE_INTEGER; 
    liKeSystemTime: LARGE_INTEGER; 
    liExpTimeZoneBias: LARGE_INTEGER; 
    uCurrentTimeZoneId: ULONG; 
    dwReserved: DWORD; 
  end; 
 
var
  NtQuerySystemInformation: function(infoClass: DWORD; 
    buffer: Pointer; 
    bufSize: DWORD; 
    returnSize: TPDword): DWORD; stdcall = nil; 
 
 
  liOldIdleTime: LARGE_INTEGER = (); 
  liOldSystemTime: LARGE_INTEGER = (); 
 
function Li2Double(x: LARGE_INTEGER): Double; 
begin
  Result := x.HighPart * 4.294967296E9 + x.LowPart 
end; 
 
procedure GetCPUUsage; 
var
  SysBaseInfo: TSystem_Basic_Information; 
  SysPerfInfo: TSystem_Performance_Information; 
  SysTimeInfo: TSystem_Time_Information; 
  status: Longint; {long}
  dbSystemTime: Double; 
  dbIdleTime: Double; 
 
  bLoopAborted : boolean; 
 
begin
  if @NtQuerySystemInformation = nil then
    NtQuerySystemInformation := GetProcAddress(GetModuleHandle('ntdll.dll'), 
      'NtQuerySystemInformation'); 
 
  // get number of processors in the system 
 
  status := NtQuerySystemInformation(SystemBasicInformation, @SysBaseInfo, SizeOf(SysBaseInfo), nil); 
  if status <> 0 then Exit; 
 
  // Show some information 
  with SysBaseInfo do
  begin
      ShowMessage( 
      Format('uKeMaximumIncrement: %d'#13'uPageSize: %d'#13+ 
      'uMmNumberOfPhysicalPages: %d'+#13+'uMmLowestPhysicalPage: %d'+#13+ 
      'uMmHighestPhysicalPage: %d'+#13+'uAl********Granularity: %d'#13+ 
      'uKeActiveProcessors: %d'#13'bKeNumberProcessors: %d', 
      [uKeMaximumIncrement, uPageSize, uMmNumberOfPhysicalPages, 
      uMmLowestPhysicalPage, uMmHighestPhysicalPage, uAl********Granularity, 
      uKeActiveProcessors, bKeNumberProcessors])); 
  end; 
 
 
  bLoopAborted := False; 
 
  while not bLoopAborted do
  begin
 
    // get new system time 
    status := NtQuerySystemInformation(SystemTimeInformation, @SysTimeInfo, SizeOf(SysTimeInfo), 0); 
    if status <> 0 then Exit; 
 
    // get new CPU's idle time 
    status := NtQuerySystemInformation(SystemPerformanceInformation, @SysPerfInfo, SizeOf(SysPerfInfo), nil); 
    if status <> 0 then Exit; 
 
    // if it's a first call - skip it 
    if (liOldIdleTime.QuadPart <> 0) then
    begin
 
      // CurrentValue = NewValue - OldValue 
      dbIdleTime := Li2Double(SysPerfInfo.liIdleTime) - Li2Double(liOldIdleTime); 
      dbSystemTime := Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(liOldSystemTime); 
 
      // CurrentCpuIdle = IdleTime / SystemTime 
      dbIdleTime := dbIdleTime / dbSystemTime; 
 
      // CurrentCpuUsage% = 100 - (CurrentCpuIdle * 100) / NumberOfProcessors 
      dbIdleTime := 100.0 - dbIdleTime * 100.0 / SysBaseInfo.bKeNumberProcessors + 0.5; 
 
      // Show Percentage 
      Form1.Label1.Caption := FormatFloat('CPU Usage: 0.0 %',dbIdleTime); 
 
      Application.ProcessMessages; 
 
      // Abort if user pressed ESC or Application is terminated 
      bLoopAborted := (GetKeyState(VK_ESCAPE) and 128 = 128) or Application.Terminated; 
 
    end; 
 
    // store new CPU's idle and system time 
    liOldIdleTime := SysPerfInfo.liIdleTime; 
    liOldSystemTime := SysTimeInfo.liKeSystemTime; 
 
    // wait one second 
    Sleep(1000); 
  end; 
end; 
 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin
  GetCPUUsage 
end;

________________
.........................
imza
Alıntı ile Cevapla
Yeni Konu aç  Cevapla

Etiketler
bulmak, cool, cool işlemcinin kullanim yuzdesini bulmak, islemcinin, kullanim, yuzdesini

Seçenekler
Stil


Saat: 07:18

Forum Yasal Uyarı
vBulletin® ile Oluşturuldu
Copyright © 2016 vBulletin Solutions, Inc. All rights reserved.

ForumSevgisi.Com Her Hakkı Saklıdır
Tema Tasarım:
Kronik Depresif


Sitemiz bir 'paylaşım' sitesidir. Bu yüzden sitemize kayıt olan herkes kontrol edilmeksizin mesaj/konu/resim paylaşabiliyorlar. Bu sebepten ötürü, sitemizdeki mesaj ya da konulardan doğabilecek yasal sorumluluklar o yazıyı paylaşan kullanıcıya aittir ve iletişim adresine mail atıldığı taktirde mesaj ya da konu en fazla 48 saat içerisinde silinecektir.

ankara escort, izmir escort ankara escort, ankara escort bayan, eryaman escort, bursa escort pendik escort, antalya escort,