2010-07-22 66 views
0

我正在MFC應用程序似乎是自動承諾〜160MB的虛擬內存。該應用通常在10-14MB的內存使用情況下運行,因此提交的內存水平似乎過高。另外,在VirtualAlloc被調用的代碼中沒有... COM & ATL也被使用。MFC應用程序如何提交虛擬內存?

在__tmainCRTStartup中的斷點可以到達之前,內存會顯示已提交進程啓動的實例。

該內存如何保留/提交?

在此先感謝!

回答

0

原來有使用約1000個多要素分配的自定義對象的靜態數組,所以改變這種使用一個std ::矢量緩解了這個問題徹底一些「遺留」的代碼...

0

唯一的原因可能是您使用的DLL。我已經在很多項目中使用了MFC 7.0和9.0,並且可以告訴你他們沒有提交這麼多的內存。

+0

發現問題在一些遺留代碼中,這些代碼具有相當大的全局堆棧數組,除非發生頁面錯誤,否則這些數組已被提交併且從不使用。 – echobravo 2010-08-19 22:31:57