2011-01-31 78 views
1

在Windows XP下使用C++的Visual Studio 2008應用程序。Windows應用程序消耗太多內存。任何建議?

超出「總是刪除新對象」建議的任何有用的建議?

編輯:其實我正在尋找一些編程建議。

+1

購買更多存儲空間?要麼或者運行內存分析器。爲這種情況提供一般性建議是愚蠢的。找出你的內存泄漏的地方,然後修復它們。 – 2011-01-31 10:04:38

+2

從你的問題來看,應用程序是否正在泄漏內存,或者它只是消耗大量內存,因爲它需要同時在內存中保存大量數據,這一點並不清楚。 – 2011-01-31 10:05:11

回答

0

取決於你的意思是 「消耗了太多的記憶」。

A)通過設計,即它需要加載或生成預期會導致問題的大型數據結構。

在這種情況下,它是i)太多的物理內存,即它變得很慢,因爲硬盤驅動器開始交換頁面進出,或ii)太多的地址空間,即它無法分配,因爲它無法找到一個洞記憶?

對於ⅱ)考慮使用的64位版本,可以考慮使用共享的存儲器來存儲大量的數據結構,碎裂的提防 - 早期分配大的緩衝器,打碎大的數據結構分成較小的

B)它使用驚喜你內存負載。

找到你的漏洞或錯誤 - 各種可用的分析器或Visual Studio構建在調試分配鉤子中。你計算緩衝區大小時是否有算術錯誤(尤其是意外的int迴繞)?

使用智能指針來管理刪除。

0

假設你有內存泄漏,在購買/運行其他配置文件之前有一個免費的解決方案來解決問題,那就是UMDH。它可以檢測到大多數內存泄漏,如果這是你的情況。

http://support.microsoft.com/kb/268343