Služby |
• Guestbook kniha návštěv
pro každého • MailForm zasílání
výsledků formulářů na e-mail
|
|
|
Zjištění frekvence
procesoru
Jak lze v Delphi snadno zjistit frekvenci
procesoru
Mám tady pro vás výpis programu, který zjistí a zapíše pracovní
frekvenci vašeho procesoru. Věšina z toho je napsána v Assembleru a
jsou použity funkce Windows, ale to můžete ze zdrojového kódu vidět
sami. unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Timer1: TTimer;
Label2: TLabel;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
cpuspeed : integer;
implementation
{$R *.DFM}
function GetCPUSpeed: variant;
const
DelayTime = 500; // measure time in ms
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;
Na formuláři musíte vytvořit dva prvky label a jeden prvek timer.
Ten timer by tam ani být nemusel, ale někdy mi to ze začátku hlásilo
nesmysly, proto jsem tam raději přidal to zpomalení na začátku.
Celý program si můžete stáhnout jako hotový EXE soubor, nebo jen
zdojový kód:
Hotový
EXE soubor (ZIP, 154 KB) Zdrojové
kódy (ZIP, 5 KB)
Autor: Jan Sova, jsovova@iol.cz, informace a seznam
článků
• Frequence
procesoru, Josef Bilek, 31.8.2001
0:40:28 • detekce
frekvence, Mi.Chal., 31.8.2001
9:31:41 • kopírování,
Kuba, 31.8.2001 19:22:15 • Opak oni
kopiruji, Jan Sova, 31.8.2001
19:25:54 • Odpověď pro
blbouna..., Mc Hydro, 13.12.2001
14:59:28 • Re: Odpověď
pro blbouna..., Josef Bilek, 13.12.2001
17:15:30 • utilitka,
DaleRunner, 15.3.2002 20:58:04 • Re:
utilitka, Michal Novotný, 26.5.2002
11:38:35
Přidat
komentář
| Poslední články ze stejné
rubriky |
• Univerzální ukládání
konfigurace do DB • Seznam běžících
procesů a jejich
ukončení
| |
Provozovatel:
Poslední články |
|
|
|
Hodnocení článku |
Stav:
2,5 Počet: 8 |
|
Nový redaktor |
Chcete psát články pro PC Svět či
se stát redaktorem?
Články honorovány! Informace zde
|
|
|