我使用Microsoft提供的COM和XML解析器来解析大约20个XML文件。该应用程序还使用库提供的API来解析XML文档。
MSXML3.0解析器似乎正在为缓存(垃圾收集)消耗大量内存。即使是垃圾的概念,如果有任何未来的引用,也会在缓存中引用相同的XML文档,但是在这里它会再次加载相同的XML文件,这会增加我的应用程序的内存使用量。
我也尝试使用DevPartner工具进行调试,它似乎无法帮助我解决这个问题。因为它没有显示任何内存泄漏,但任务管理器中的内存使用量不断增加。
我从下面的链接了解了垃圾收集:
http://support.microsoft.com/kb/304227
它告诉通过更改redit条目'NoFullGC'来禁用垃圾收集,然后我按照这个来找到这个键但是我找不到它。我甚至在regedit中找不到MSXML3.0。
另一件令我觉得奇怪的是,一旦我最小化应用程序窗口,这个进程分配的内存就被释放了。 (这对我来说非常奇怪)。
请帮我解决这个问题。
答案 0 :(得分:1)
GC并不意味着内存泄漏。因此,内存诊断工具在这里无法帮助 - 或者它必须是误报。
为了减轻GC的内存消耗,您可能需要:
我不确定如何最小化窗口可以启动GC,但这必须启动GC以便以后回收内存。