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

Вниз

Как програмно узнать сколько занимает памяти чужое приложение?   Найти похожие ветки 

 
kirya85   (2002-01-17 22:29) [0]

Как програмно узнать сколько занимает памяти чужое приложение? Желательно физичиской и виртуальной памяти отдельно.


 
kirya85   (2002-01-21 00:12) [1]

НЕУЖЕЛИ НИКТО НЕЗНАЕТ?!!!???


 
Rem   (2002-01-21 12:58) [2]

В модуле TlHelp32:
function Toolhelp32ReadProcessMemory(th32ProcessID: DWORD; lpBaseAddress: Pointer; var lpBuffer; cbRead: DWORD; var lpNumberOfBytesRead: DWORD): BOOL stdcall;


 
cdaDmitriy   (2002-01-22 14:40) [3]

>> REM

Copies memory allocated to another process into an application-supplied buffer.

BOOL WINAPI Toolhelp32ReadProcessMemory(DWORD th32ProcessID,
LPCVOID lpBaseAddress, LPVOID lpBuffer, DWORD cbRead,
LPDWORD lpNumberOfBytesRead);

-- и это ответ ???


 
cdaDmitriy   (2002-01-22 19:18) [4]

НЕУЖЕЛИ НИКТО НЕЗНАЕТ?!!!???



 
cdaDmitriy   (2002-01-24 12:56) [5]

?????????????????


 
Rem   (2002-01-24 14:08) [6]

Рядом ведь лежит:

Heap32First(..THEAPENTRY32..);
Heap32Next(..THEAPENTRY32..);

THEAPENTRY32 = record
dwSize: DWORD;
hHandle: THandle; // Handle of this heap block
dwAddress: DWORD; // Linear address of start of block
dwBlockSize: DWORD; // Size of block in bytes
dwFlags: DWORD;
dwLockCount: DWORD;
dwResvd: DWORD;
th32ProcessID: DWORD; // owning process
th32HeapID: DWORD; // heap block is in
end;


 
Philip   (2002-01-25 00:17) [7]

Я в одной из своих программ пользовался следующим приемом для определения общего объема задействованной памяти:

var
Offset : Cardinal;
Buf : _MEMORY_BASIC_INFORMATION;
OccupiedSpace : LongInt;
begin
OccupiedSpace := 7FFFFFFF
Offset := 0;
while Offset < $7FFFFFFF do
begin
VirtualQueryEx(ProcessHandle, Ptr(Offset), Buf, SizeOf Buf));

if Buf.State = MEM_FREE then
OccupiedSpace := OccupiedSpace - Buf.RegionSize;
end;
end;


 
Philip   (2002-01-25 18:06) [8]

Сорри, забыл про строчку :)
Offset := Offset + Buf.RegionSize
воткни ее после VirtualQueryEx


 
cdaDmitriy   (2002-01-27 10:00) [9]

>> Philip
извини не понял ( проверил твой код ) и не понял
какую величину возвращает OccupiedSpace
в тесте OccupiedSpace= 24,145к
в таскменедере ()= 1,782к
если можеш обьясни .


 
VuDZ   (2002-01-27 10:07) [10]

люди, вы знаете о такой весчи як МСДН?
GetProcessMemoryInfo
The GetProcessMemoryInfo function retrieves information about the memory usage of the specified process in the PROCESS_MEMORY_COUNTERS structure.

BOOL GetProcessMemoryInfo(
HANDLE Process, // handle to process
PPROCESS_MEMORY_COUNTERS ppsmemCounters, // buffer
DWORD cb // size of buffer
);
Parameters
Process
[in] Handle to the process.
ppsmemCounters
[out] Pointer to the PROCESS_MEMORY_COUNTERS structure that receives information about the memory usage of the process.
cb
[in] Specifies the size, in bytes, of the PROCESS_MEMORY_COUNTERS structure.

The PROCESS_MEMORY_COUNTERS structure contains the memory statistics for a process.

typedef struct _PROCESS_MEMORY_COUNTERS {
DWORD cb;
DWORD PageFaultCount;
SIZE_T PeakWorkingSetSize;
SIZE_T WorkingSetSize;
SIZE_T QuotaPeakPagedPoolUsage;
SIZE_T QuotaPagedPoolUsage;
SIZE_T QuotaPeakNonPagedPoolUsage;
SIZE_T QuotaNonPagedPoolUsage;
SIZE_T PagefileUsage;
SIZE_T PeakPagefileUsage;
} PROCESS_MEMORY_COUNTERS;
typedef PROCESS_MEMORY_COUNTERS *PPROCESS_MEMORY_COUNTERS;
Members
cb
The size of the structure, in bytes.
PageFaultCount
The number of page faults.
PeakWorkingSetSize
The peak working set size.
WorkingSetSize
The current working set size.
QuotaPeakPagedPoolUsage
The peak paged pool usage.
QuotaPagedPoolUsage
The current paged pool usage.
QuotaPeakNonPagedPoolUsage
The peak nonpaged pool usage.
QuotaNonPagedPoolUsage
The current nonpaged pool usage.
PagefileUsage
The current pagefile usage.
PeakPagefileUsage
The peak pagefile usage.

toolhelp, toolhelp... проще надо быть...


 
cdaDmitriy   (2002-01-27 10:23) [11]

>> VuDZ
сделай тест чтобы твоя прога и таскменедер давали одинаковое значение


 
VuDZ   (2002-01-27 19:19) [12]

тебе прислать исходник или exe?
исходник - полностью на С++ +MFC
возьми любой depence viewer и посмотри, что использует task manager - там сылки на toolhelp нет в принципе.
А то что у кого то не получается - проблема его рук и нежелание читать MSDN и искать в инете


 
VuDZ   (2002-01-28 08:39) [13]

для нежелающих искать - http://delphi.xonix.ru/faq/system/memory01.shtml - пример на делфи



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

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

Наверх





Память: 0.47 MB
Время: 0.008 c
1-69765
SJ_Hunter
2002-04-10 00:02
2002.04.22
Euqation и рисование


14-70023
Рамиль
2002-03-17 17:22
2002.04.22
Помогите настроить сеть на Win95/98 для работы с TCP/IP


14-70026
Esa
2002-03-18 13:40
2002.04.22
AccessViolation


4-70067
Lerico
2002-02-19 15:16
2002.04.22
Друзья!


1-69868
VAleksey
2002-04-09 08:54
2002.04.22
Копирование каталогов





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