我在MDI应用程序中发现了MFC CHtmlView类的问题。反复打开和关闭窗口会导致内存逐渐消耗。我已经研究过这个问题并找到了MSDN关于BSTR问题的文章(http://support.microsoft.com/kb/241750),实现了这些修复,但仍然存在大量流失。
我已经确定了VC8和VC9中的问题,试图确保所有接口都真正被释放,但我完全被困住了。 最简单的方法是使用MFC应用程序向导(vc8或vc9)创建标准MDI应用程序,只将默认CView更改为CHtmlView。在debug中编译并运行应用程序,应用程序将自动打开一个新的html窗口到MSDN。
打开TaskManager以跟踪应用程序使用的内存。关闭打开的窗口。然后每次重新打开并关闭一个新窗口时,您都会看到应用程序占用的内存明显增加。一旦应用程序关闭,虽然它没有泄漏。
如果有人有任何信息,我很感激您的回复。
答案 0 :(得分:0)
您可以使用SetProcessWorkingSetSize(pi.hProcess, (SIZE_T)-1, (SIZE_T)-1))
来最小化流程工作集。
http://msdn.microsoft.com/en-us/library/ms686234(VS.85).aspx