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

Вниз

Сколько жрет мой процесс ?   Найти похожие ветки 

 
Hanson_NW   (2002-03-19 18:20) [0]

Диспетчер задач показывает нагрузку процессора и пожирание памяти моей прогой. Хочу сам.


 
VuDZ   (2002-03-19 22:04) [1]

GetProcessMemoryInfo()
http://vudz.by.ru/misc/cpuusage.html <- cpuUsage on C


 
Tosov   (2002-03-20 16:13) [2]

Кол-во памяти, занимаемое процессом:
http://delphi.xonix.ru/faq/show.php?m=system&n=7


 
gluka   (2002-03-21 00:36) [3]

For Vudz!!!
А не мог бы ты это на делф перевести , а то неполучаеться, неработает (аж стыдно)!!!



 
Tosov   (2002-03-21 00:48) [4]

Примерно так :

type SYSTEM_BASIC_INFORMATION=record
dwUnknown1 :DWORD;
uKeMaximumIncrement :ULONG;
uPageSize :ULONG;
uMmNumberOfPhysicalPages :ULONG;
uMmLowestPhysicalPage :ULONG;
uMmHighestPhysicalPage :ULONG;
uAllocationGranularity :ULONG;
pLowestUserAddress :Pointer;
pMmHighestUserAddress :Pointer;
uKeActiveProcessors :ULONG;
bKeNumberProcessors :BYTE;
bUnknown2 :BYTE;
wUnknown3 :WORD;
end;

type
SYSTEM_PERFORMANCE_INFORMATION=record
liIdleTime : LARGE_INTEGER;
dwSpare : array[0..76] of DWORD;
end;

type
SYSTEM_TIME_INFORMATION=record
liKeBootTime :LARGE_INTEGER;
liKeSystemTime :LARGE_INTEGER;
liExpTimeZoneBias :LARGE_INTEGER;
uCurrentTimeZoneId :ULONG;
dwReserved :DWORD;
end;

const
SystemBasicInformation =0;
SystemPerformanceInformation =2;
SystemTimeInformation =3;


function NtQuerySystemInformation(l:UINT;buff:Pointer;buffl:UINT;u:UINT):CARDINAL;stdcall;external "ntdll.dll";


function Li2Double(const x:LARGE_INTEGER):Double;
begin
Result:=x.HighPart*4.294967296E9 + x.LowPart;
end;



procedure TForm1.Button1Click(Sender: TObject);
var
SysBaseInfo : SYSTEM_BASIC_INFORMATION;
SysTimeInfo : SYSTEM_TIME_INFORMATION;
SysPerfInfo : SYSTEM_PERFORMANCE_INFORMATION;
liOldIdleTime :LARGE_INTEGER;
liOldSystemTime :LARGE_INTEGER;
dbIdleTime :double;
dbSystemTime :double;
begin
liOldIdleTime.QuadPart:=0;
liOldSystemTime.QuadPart:=0;
if NtQuerySystemInformation(SystemBasicInformation,@SysBaseInfo,sizeof(SysBaseInfo),0)<>NO_ERROR
then exit;
repeat
if NtQuerySystemInformation(SystemTimeInformation,@SysTimeInfo,sizeof(SysTimeInfo),0)<>NO_ERROR
then exit;
if NtQuerySystemInformation(SystemPerformanceInformation,@SysPerfInfo,sizeof(SysPerfInfo),0)<>NO_ERROR
then exit;
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;

Gauge1.Progress:=Round(dbIdleTime);
end;
// store new CPU"s idle and system time
liOldIdleTime := SysPerfInfo.liIdleTime;
liOldSystemTime := SysTimeInfo.liKeSystemTime;


// wait one second
Sleep(1000);

Application.ProcessMessages;
if CheckBox1.Checked then exit;
until false;
end;


 
gluka   (2002-03-21 17:55) [5]

Вроде бы всё также написал, а всеравно неработало!!!
А теперь работает!
Спасибо!


 
VuDZ   (2002-03-21 18:37) [6]

2Moders - надо бы эту ветку сохрвнить для FAQ...



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

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

Наверх




Память: 0.45 MB
Время: 0.006 c
7-73432
Keymaster
2002-02-24 15:12
2002.05.23
Как юзать Cards.dll?


1-73286
Avsam
2002-05-11 14:40
2002.05.23
SysListView32


14-73361
Alexander Vasjuk
2002-04-11 18:45
2002.05.23
Замаскировать средство разработки


1-73292
Novice 2
2002-05-11 17:40
2002.05.23
Hint ы (всплывающие подсказки) к отдельным секциям StatusBar а.


14-73402
kat
2002-04-17 12:28
2002.05.23
Получила выигранный на Европе Плюс музыкальный центр





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский