-
할당한 메모리가 working set에 잡히지 않던 현상프로그래밍/의문 2019. 4. 23. 23:32반응형
내가 만든 서버를 띄우고 윈도우 작업 관리자에서 메모리 점유율을 확인하니 할당한 메모리에 비해 턱없이 적은 메모리가 잡히고 있었다.
적어도 1gb는 잡혔어야 했는데 약 180mb만 잡혔던 것이다.
할당이 안 되고 있던 건가 했는데 그건 아니었고, 혹시나 해서 Virtual memory size를 확인해보니 거기에는 잡혀있더라.
메모리 엑세스가 되지 않아서 그런 걸까? 그럼 억지로 메모리를 엑세스 해 Working set으로 올라가지 않을까? 라는 생각에 memset을 이용해 할당한 메모리에 접근하도록 해봤다.
// 테스트를 위한 메모리 강제 접근 memset(recvbuf.ptr(), 0, recvbuf.size()); memset(sendbuf.ptr(), 0, sendbuf.size());
그러자 실제로 Working set에 올라갔다.
결론: 메모리를 할당해도 엑세스 하지 않으면 Working set에는 잡히지 않을 수 있다.
실제 할당된 메모리 량을 확인하려면 virtual size를 확인하자.
반응형'프로그래밍 > 의문' 카테고리의 다른 글
FlatBuffer streaming 통신 (0) 2019.08.11 c# Regex의 패턴은 캐싱 된다. (0) 2019.05.10 boost asio 사용 시 win32 버전을 지정하지 않으면 io_context::run이 빠져나가는 현상 (0) 2019.04.14 CRITICAL_SECTION의 default spin count (0) 2019.04.10 C# Excel Application이 예외 발생 시 종료되지 않는 현상 (0) 2019.03.31