PSAPI Library 를 이용한 현재 프로세스 메모리 사용량 파악
프로그램 내에서...
현재 PC 의 메모리 사용량과 현재 프로세서의 사용량을 알고 싶을때 쓰자 -ㅅ-
코드 참조 :
http://msdn.microsoft.com/en-us/library/Aa366589
http://blog.naver.com/ysoftman/20103437082
#ifdef _WINDOWS
#include <windows.h>
#include <stdio.h>
// 프로세스 API (메모리 사용량 확인을 위해서)
#include <psapi.h>
#pragma comment(lib, "psapi.lib")
#endif
void main()
{
// Something to do
// ... 중략
#ifdef _WINDOWS
DWORD processID = GetCurrentProcessId();
HANDLE hProcess;
PROCESS_MEMORY_COUNTERS pmc;
fprintf(stderr, "Process ID: %u\n", processID);
// Print information about the memory usage of the process.
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID);
if (NULL == hProcess) exit(-1);
// GetProcessMemoryInfo 는 PSAPI library 에 구현되어 있음
if ( GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc)) )
{
fprintf(stderr, "PageFaultCount: %d\n", pmc.PageFaultCount );
fprintf(stderr, "PeakWorkingSetSize: %d\n", pmc.PeakWorkingSetSize );
fprintf(stderr, "WorkingSetSize: %d\n", pmc.WorkingSetSize );
fprintf(stderr, "QuotaPeakPagedPoolUsage: %d\n", pmc.QuotaPeakPagedPoolUsage );
fprintf(stderr, "QuotaPagedPoolUsage: %d\n", pmc.QuotaPagedPoolUsage );
fprintf(stderr, "QuotaPeakNonPagedPoolUsage: %d\n", pmc.QuotaPeakNonPagedPoolUsage );
fprintf(stderr, "QuotaNonPagedPoolUsage: %d\n", pmc.QuotaNonPagedPoolUsage );
fprintf(stderr, "PagefileUsage: %d\n", pmc.PagefileUsage );
fprintf(stderr, "PeakPagefileUsage: %d\n", pmc.PeakPagefileUsage );
}
CloseHandle( hProcess );
#endif
}
요것도 참조
http://myoung76.tistory.com/97
http://blog.naver.com/moya800/100122080323
http://msdn.microsoft.com/en-us/library/Aa366589
[출처] 메모리 사용량 체크|작성자 핵이