Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];

Вниз

Процесор   Найти похожие ветки 

 
Andrew22   (2002-07-17 07:13) [0]

Как определить частоту проца в Delphi?


 
Destroyer   (2002-07-17 07:18) [1]

ВРОДЕ ТАК:

function GetCPUSpeed: Double;
const

DelayTime = 500;
var

TimerHi : DWORD;
TimerLo : DWORD;
PriorityClass : Integer;
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;


 
Andrew22   (2002-07-17 09:58) [2]

А где это вс. писать? У меня не получилось...


 
Andrew22   (2002-07-17 10:10) [3]

Меня кто-то слышит или видит? Ответьте!!!


 
Игорь Шевченко   (2002-07-17 10:13) [4]

В реестре частота процессора записана
HKLM\HARDWARE\Description\System\CentralProcessor\0\~MHz


 
Andrew22   (2002-07-17 10:18) [5]

Спастбо, Игорёк хоть ты то мне помог. Так гараздо проще.
А этот ключ у всех один и тотже?


 
Игорь Шевченко   (2002-07-17 10:21) [6]

Для NT - систем - один и тот же, других под рукой нет


 
Eugene Lachinov   (2002-07-17 10:48) [7]

По соседству оказалась Windows 95, в реестре информации нет, код указанный выше работает хорошо, показывает такое же значение что и в реестре, проверял на Windows 2000


 
Andrew22   (2002-07-17 11:05) [8]

А в Мелениуме то он какой?


 
Eugene Lachinov   (2002-07-17 11:12) [9]

В ME ключа нету


 
Andrew22   (2002-07-17 11:18) [10]

А что делать?


 
Destroyer   (2002-07-17 11:23) [11]

Я привел выше функцию, которая вычисляет частоту проца в мегагерцах. Чего ж еще?


 
Song   (2002-07-17 12:01) [12]


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;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Format("Your CPU speed: %f MHz", [GetCPUSpeed]));
end;


 
Andrew22   (2002-07-24 10:26) [13]

Где это всё писать? У меня не получилось.


 
Andrew22   (2002-07-24 10:28) [14]

Где это всё писать? У меня не получилось. Ни чего не пойму:-(


 
Song   (2002-07-24 10:32) [15]

>>Где это всё писать? У меня не получилось.
Прямо в программе!


 
Kin   (2002-07-25 22:01) [16]

Пиши на gorn@r66.ru я тебе исходники скину! В Виде файлов Дельфийских!!!


 
Nalsur   (2002-07-29 11:58) [17]

Ты эти функции на нажатие кнопки навесь, и не забудь функцию обозначить в Interface.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
4-21325
maxim2
2002-08-21 08:14
2002.10.07
Cut, Copy, Paste,


3-20871
Alex-kosmonavt
2002-09-16 10:48
2002.10.07
Как правильно оформить WHERE


1-21107
exchoper
2002-09-20 14:17
2002.10.07
Информация по COM


3-20916
Duce
2002-09-11 18:42
2002.10.07
Как в связке БДЕ+Оракл результат запроса вернуть?


6-21187
spiderman
2002-05-08 12:22
2002.10.07
Please...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский