2010-12-14 2 views
1

1.2GB 메모리를 예약했지만, 600MB 만 커밋 된 C++로 작성된 응용 프로그램이 있습니다. 응용 프로그램은 COM/DCOM, ADO를 사용합니다.무엇이 메모리 예약을 유발합니까?

많은 메모리가 예약되어 있고 커밋 된 적이없는 이유를 알고 싶습니다.

감사

+0

몇 개의 스레드가 실행 중이십니까? –

+0

약 7 스레드 – mathk

+0

KB 문서가 귀하의 사례 (http://support.microsoft.com/kb/193026)에 적용됩니까? – sharptooth

답변

2

의도적으로 일부 할당에 대한 큰 영역을 확보하고 실제로 필요로 단지 작은 지역을 커밋 수있는 응용 프로그램입니다. 이 경우 응용 프로그램이 메모리 할당을 실제로 할당 자에게 요청하고 메모리를 할당 할 때까지는 커밋되지 않습니다.

+0

어떤 할당자가이를 할 수 있는지 알아 주셔서 감사합니다. – mathk

+0

@mathk : 저희 회사는 매우 단순한 사내 할당자를 가지고 있습니다. 따라서 거의 모든 유자격 개발자가 하나를 작성할 수 있으며, 단지 추측 할 수있는 기회가 될 수는 없습니다. – sharptooth

+0

좋아, 내가 entier 프로젝트에서 VirtualAlloc을 찾고 있는데 찾을 수 없다는 것이다. 예약 된 메모리에 다른 기능이 있습니까? – mathk

관련 문제