Windows应用程序占用太多内存。有什么建议吗?

时间:2011-01-31 10:03:19

标签: c++ visual-studio visual-c++

在Windows XP下使用C ++的Visual Studio 2008应用程序。

“永远删除新对象”建议之外的任何有用建议?

编辑:其实我正在寻找一些编程建议。

2 个答案:

答案 0 :(得分:0)

假设您有内存泄漏,在购买/运行其他配置文件之前有一个免费解决方案可以解决问题,那就是UMDH。如果那是你的情况,它可以检测到大多数内存泄漏。

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

答案 1 :(得分:0)

取决于“消耗太多记忆”的意思。

A)通过设计,即它需要加载或生成您希望引起问题的大型数据结构。

在这种情况下,它是i)太多的物理内存,即它变慢,因为硬盘驱动器开始交换页面或ii)太多的地址空间,即它无法分配,因为它无法找到一个洞存储器?

对于ii)考虑使用64位构建,考虑使用共享内存来存储大型数据结构,注意碎片 - 尽早分配大型缓冲区,将大型数据结构分解为更小的数据结构

B)使用大量内存让你感到惊讶。

查找您的泄漏或错误 - 可用的各种分析器或在调试分配钩子中构建的visual studio。你有没有计算缓冲区大小的算术(特别是意外的int换行)?

使用智能指针管理删除。