[Visual C++] QueryWorkingSet 함수 활용하여 Private Working Set 값을 구해오는데요..
글쓴이: park3250 / 작성시간: 목, 2015/06/04 - 4:33오후
안녕하세요
QueryWorkingSet() 함수 활용하여 Private Working Set 값을 구해오는데요..
소스코드는 아래 소스 사용하였습니다
http://www.codeproject.com/Articles/87529/Calculate-Memory-Working-Set-Private-Programmatica
우선 TotalMemory(작업 집합), SharedMemory(공유된 작업집합)에
*4를 해주는 이유가 궁굼하구요..
PC에서 사용했을때는 값이 대부분 정확한데
NT서버에서 사용했을때는 값이 정확하지 않읂게 대부분입니다.
아시는분 답변좀 부탁드립니다..
Forums:
페이지 개수이기 때문입니다.
4를 곱하는 부분을 보니 페이지 개수 값에 4를 곱하고 있습니다.
가상 메모리 구조에서 페이지란 물리 메모리를 나눈 메모리 단위로, 페이징에 의해 관리되는 메모리 단위입니다.
인텔에서는 보통 4KB 단위가 기본값이므로(물론 시스템마다 다르기에 GetSystemInfo Win32 API로 보다 정확한 값을 구해야 합니다만...)
4를 곱해서 KB 단위의 값으로 변환한 것으로 보입니다. (화면 출력을 위해)
추가척으로 질문드릴게요..
그러면 페이지 개수를 구해서 곱하면 되는건 알겠는데요
4를 곱했을때 값이 정확한게 있고 정확하지 않은게 있어요...
그렇다는 얘기는 프로세스 별로 페이지 개수가 다르다는건가요?
프로세스 별로 페이지 개수를 구해서 곱해야 하나요?
댓글 달기