EmptyWorkingSet과 SetProcessWorkingSetSize를 이용한 메모리 최적화 툴 제작하기
프로그래밍 언어/C++2012. 2. 10. 17:59
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 #include <Tlhelp32.h>#include <Psapi.h>#pragma comment(lib, "Kernel32.lib")#pragma comment(lib, "psapi.lib")// SetProcessWorkingSetSize()를 이용한 메모리 최적화 소스HANDLE hProcess = NULL;int i=0;for( i=0; i<0xffff; i+=4 ){hProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_SET_QUOTA, FALSE, i);if(hProcess){SetProcessWorkingSetSize( hProcess, -1, -1 );CloseHandle(hProcess);}hProcess = NULL;}// EmptyWorkingSet()를 이용한 메모리 최적화 소스HANDLE hProcess = NULL;HANDLE hSnap = INVALID_HANDLE_VALUE;PROCESSENTRY32 pe;hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if(hSnap == INVALID_HANDLE_VALUE){return -1;}pe.dwSize = sizeof(PROCESSENTRY32);if(Process32First(hSnap, &pe) == FALSE){CloseHandle(hSnap);return -1;}do{hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID);if(hProcess){EmptyWorkingSet(hProcess);CloseHandle(hProcess);}hProcess = NULL;}while(Process32Next(hSnap, &pe));CloseHandle(hSnap);
아주 간단하게 메모리 최적화에 사용되는 소스를 작성해 보았다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
VC++ 파일 경로 조작에 유용한 API들 (0) | 2012.03.09 |
---|---|
리소스 DLL을 이용한 심플 다국어 프로그램 개발 방법 예제 (0) | 2012.03.08 |
프로그램 개발은 반드시 유니코드로 개발하는것이... (0) | 2012.02.10 |
timeGetTime()을 이용한 코드 구동시간 클래스 (0) | 2011.12.17 |
[잡담] SEH (Structured Exception Handler)의 불편한 진실 (1) | 2011.12.13 |