2010-12-14 36 views
1

我有一個用C++編寫的應用程序,它保留了1.2GB內存,但只有600MB被提交。 應用程序使用COM/DCOM,ADO。什麼導致內存保留

我會問你,如果你有任何想法,爲什麼這麼多的內存是保留和永不承諾?

感謝

+0

你有多少個線程正在運行? – 2010-12-14 22:23:50

+0

約7個主題 – mathk 2010-12-15 08:51:53

+0

這是(相當老)KB文章適用於您的情況http://support.microsoft.com/kb/193026? – sharptooth 2010-12-16 10:11:55

回答

2

應用程序可能有意保留一個大的區域對於一些分配,只有當他們真正需要提交較小的區域。如果是這樣的話 - 直到你讓應用程序確實要求分配器分配內存並且它確實提交了內存之後,它們纔會被提交。

+0

謝謝你知道哪個分配器可以做到這一點? – mathk 2010-12-14 15:26:24

+0

@mathk:我們公司有一個非常簡單的內部分配器,它的行爲就像這樣,所以我想幾乎所有合格的開發人員都可以編寫一個分配器,它可以是任何東西,所以沒有機會猜測。 – sharptooth 2010-12-15 07:58:16

+0

好的是,我正在entier項目中搜索VirtualAlloc,但找不到一個。是否有其他功能保留內存? – mathk 2010-12-15 09:15:46

相關問題