Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.135.224] |
|
Сообщ.
#1
,
|
|
|
У меня такой вопрос: как узнать, сколько места занимает процесс в ОЗУ
(желательно из любой windows) |
Сообщ.
#2
,
|
|
|
#include <windows.h>
#include <stdio.h> #include "psapi.h" void PrintMemoryInfo( DWORD processID ) { HANDLE hProcess; PROCESS_MEMORY_COUNTERS pmc; // Print the process identifier. printf( "\nProcess ID: \%u\n", processID ); // Print information about the memory usage of the process. hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID ); if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) ) { printf( "\tPageFaultCount: 0x\%08X\n", pmc.PageFaultCount ); printf( "\tPeakWorkingSetSize: 0x\%08X\n", pmc.PeakWorkingSetSize ); printf( "\tWorkingSetSize: 0x\%08X\n", pmc.WorkingSetSize ); printf( "\tQuotaPeakPagedPoolUsage: 0x\%08X\n", pmc.QuotaPeakPagedPoolUsage ); printf( "\tQuotaPagedPoolUsage: 0x\%08X\n", pmc.QuotaPagedPoolUsage ); printf( "\tQuotaPeakNonPagedPoolUsage: 0x\%08X\n", pmc.QuotaPeakNonPagedPoolUsage ); printf( "\tQuotaNonPagedPoolUsage: 0x\%08X\n", pmc.QuotaNonPagedPoolUsage ); printf( "\tPagefileUsage: 0x\%08X\n", pmc.PagefileUsage ); printf( "\tPeakPagefileUsage: 0x\%08X\n", pmc.PeakPagefileUsage ); } CloseHandle( hProcess ); } void main( ) { // Get the list of process identifiers. DWORD aProcesses[1024], cbNeeded, cProcesses; unsigned int i; if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) return; // Calculate how many process identifiers were returned. cProcesses = cbNeeded / sizeof(DWORD); // Print the memory usage for each process for ( i = 0; i < cProcesses; i++ ) PrintMemoryInfo( aProcesses[i] ); } |