【发布时间】:2011-06-21 09:40:52
【问题描述】:
一位客户抱怨我的程序使用了太多内存。然而,在与他们合作了一段时间后,我意识到:
- 他们已经关闭了他们的页面文件(在他们的终端服务框中)。
- 他们担心我的程序的任务管理器中的“私有工作集”图形的大小。
所以,我的问题是,如果我只是在我的程序启动后使用 EmptyWorkingSet() 修剪工作集的大小(它在 XML 解析期间使用大量内存,然后将其删除,但工作集没有似乎下降了)我可以使工作集数字下降。但是,这真的会帮助客户吗?我有一种感觉,这只是意味着工作集将被分页,我相信如果你关闭了页面文件,工作集无论如何都是由真实内存支持的......
说任务管理器报告为“私有工作集”真的是我的程序有多少新/分配的,这是真的吗?
【问题讨论】:
-
他们是关闭页面文件的白痴。
-
@Andrew: ...也许他们来自 linux 背景,实际上你可以在 2GB RAM 中运行有价值的程序而无需点击交换;-p
-
是的,我完全同意,不幸的是,管理层坚持要我修复它,而不是告诉客户打开他们的页面文件...... :-(
标签: c++ c windows memory-management