성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
[정성태] 만드실 수 있습니다. 단지, Unity 엔진 내의 스크립트와 W...
[공진영] 안녕하세요 좋은글 감사합니다. 현재 제가 wpf로 관제 모...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Windows - (commit이 아닌) reserved 메모리 사용량 확인 방법</h1> <p> 아래의 글에서,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Commit 메모리가 낮은 상황에서도 메모리 부족(Out-of-memory) 예외 발생 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/11110'>https://www.sysnet.pe.kr/2/0/11110</a> </pre> <br /> 덧글로 질문이 달렸군요. ^^ 사실 다음의 글에서 한번 설명을 했는데,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 작업 관리자에서의 "Commit size"가 가리키는 메모리의 의미 ; <a target='tab' href='https://www.sysnet.pe.kr/2/0/1850'>https://www.sysnet.pe.kr/2/0/1850</a> </pre> <br /> 별로 주목을 받지 못하는 듯합니다. ^^; 그래서 약간의 첨언 차원에서 글로 남깁니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> <a target='tab' href='https://www.sysnet.pe.kr/2/0/1850'>언급한 대로</a>, 관련 정보를 확인하려면 sysinternal 도구의 힘을 빌려야 합니다. <br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Process Explorer ; <a target='tab' href='https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer'>https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer</a> </pre> <br /> 더군다나 기본적으로는 해당 정보를 보여주지 않기 때문에, 다음 화면과 같이 "Process Memory" 범주의 "Virtual Size"를 선택해야 합니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='check_reserved_memory_2.png' src='/SysWebRes/bbs/check_reserved_memory_2.png' /><br /> <br /> 그럼, 가장 우측에 추가된 "Virtual Size" 칼럼으로 "1,608,640 K" 값을 확인할 수 있는데 그게 바로 "예약까지 포함한 가상 메모리 크기"입니다. 여기서 재미있는 건, 64비트 응용 프로그램의 경우 기본적으로 가상 메모리가 크게 잡혀(예약돼) 있는데, 주소 공간이 남으니 연속 메모리 공간을 편의상 충분히 점유해 두는 듯합니다. (달리 말하면, 64비트 시대인 지금 가상 메모리 예약은 의미 없는 정보가 되었습니다.)<br /> <br /> 이것 외에도 더욱 자세한 정보를 보여주는 VMMap도 쓸 만합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > VMMap ; <a target='tab' href='https://learn.microsoft.com/en-us/sysinternals/downloads/vmmap'>https://learn.microsoft.com/en-us/sysinternals/downloads/vmmap</a> </pre> <br /> "<a target='tab' href='https://www.sysnet.pe.kr/2/0/11110'>Commit 메모리가 낮은 상황에서도 메모리 부족(Out-of-memory) 예외 발생</a>" 글의 예제 코드를 실행시키고, VMMap으로 확인해 보면 다음과 같이 나옵니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='check_reserved_memory_1.png' src='/SysWebRes/bbs/check_reserved_memory_1.png' /><br /> <br /> 보는 바와 같이, "<a target='tab' href='https://www.sysnet.pe.kr/2/0/1850'>Committed</a>" 외에 "Size"가 나오는데 그게 바로 reserved까지 포함한 가상 메모리 크기입니다. 게다가 메모리를 사용한 유형도 알 수 있는데, 예제 코드의 경우 스레드를 생성해 1MB 스택이 점유되는 방식이므로 "Stack" 유형으로 "1,935,360 K"가 잡힌 것을 확인할 수 있습니다. 그리고 하단의 grid 영역에는 생성된 스레드 하나 당 "1,024 K"가 점유되고 "16 K"가 Committed 상태인 것도 볼 수 있습니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1158
(왼쪽의 숫자를 입력해야 합니다.)