윈도우 프로그래밍

윈도우 할당 메모리 개념(Private, Virtual, WorkingSet)

하늘흐늘 2017. 4. 16. 23:30
반응형

윈도우 할당 메모리는 아래와 같은 3가지 형태로 확인할 수 있습니다.

  

  

작업 세트(Working Set)

작업 관리자에서 메모리로 보이는 항목으로 현재 프로그램이 사용하고 있는 물리 메모리의 양을 나타냅니다. 

윈도우는 현재 불필요하거나 현재 여유가 없을 경우 프로그램 메모리를 디스크에 저장합니다. 소위 말하는 스왑(SWAP)이라고 표현되는 부분입니다. 즉 작업 세트는 해당 프로그램 중에 스왑되지 않고 현재 물리 메모리에서 차지하는 양입니다. 

여기서 좀 더 깊이 들어간다면 보통 윈도우 프로그램은 실행 프로그램이 다른 공유 라이브러리를 참조하는 경우가 많고 그럴경우 작업 세트의 메모리는 참조하는 공유 라이브러리를 위하여 할당한 메모리도 포함하고 있을 수 있습니다.

거기에 윈도우가 현재 메모리 상태와 프로그램 상태에 따라 작업 세트의 양을 조절하는 관계로 차지하는 크기는 항상 일정하지 않을 수 있습니다. 

물론 메모리 릭이 발생하는 경우에는 증가하는게 눈에 보입니다. 

   

  

Private Bytes

프로그램에 할당된 메모리의 양을 나타냅니다. 이것은 물리 메모리 + 스왑된 메모리를 나타냅니다. Working Set과는 다르게 공유 라이브러리를 위하여 할당한 메모리는 포함하지 않으나 해당 메모리 중에 프로그램 개발시 링크한 라이브러리로 인하여 할당한 메모리를 별도로 구별할 수는 없습니다. 

그냥 프로그램 자체가 대략 이정도 사용한다고 보시면 될 듯 합니다.

   

  

Virtual Bytes

프로그램에 할당된 메모리로 물리 메모리 + 스왑된 메모리를 나타내며 이것은 프로그램에 할당된 메모리에 공유 라이브러리를 위하여 할당된 메모리를 포함하고 있습니다. 이런 관계로 이 메모리는 실제로 머신이 가진 메모리 보다 더 많은 메모리를 표시할 수 있습니다.   

   

  

해당 내용에 대하여 좀 더 자세한 내용을 보고 싶으면 아래 사이트를 참조 부탁드립니다.

What is private bytes, virtual bytes, working set?


반응형