프로그램 내에서...
현재 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
[출처] 메모리 사용량 체크|작성자 핵이
'[ Programing ] > C++' 카테고리의 다른 글
CPU 갯수 알아오기 (0) | 2013.05.21 |
---|---|
클래스 내부에 함수 포인터 쓰기 (0) | 2013.05.21 |
보호 클래스/보호함수 만들기 sealed 키워드 (0) | 2013.05.21 |
명시적인 함수 재정의 키워드 override (0) | 2013.05.21 |
메모리 덮어쓰기 확인 _heapchk() (0) | 2013.05.21 |