我正在使用Microsoft提供的COM和XML解析器来解析大约20个XML文件。应用程序还使用库提供的API来解析XML文档。
MSXML3.0解析器似乎占用了大量内存用于缓存(垃圾收集)。即使垃圾的概念是在缓存中引用相同的XML文档(如果将来有任何引用),但是在这里它再次多次加载相同的XML文档,从而增加了我的应用程序的内存使用量。
我还试着用DevPartner工具进行调试,但它似乎帮不了我。因为它没有显示任何内存泄漏,但是任务管理器中的内存使用量不断增加。
我从下面的链接了解了垃圾收集:
http://support.microsoft.com/kb/304227
它告诉我们通过更改redit条目'NoFullGC‘来禁用垃圾回收,我按照这个命令找到了这个键,但是我找不到它。我甚至在regedit中找不到MSXML3.0。
我觉得奇怪的另一件事是,一旦我最小化应用程序窗口,这个进程分配的内存就被释放了。(这对我来说很奇怪)。
请帮我摆脱这一切。
发布于 2010-12-01 14:10:50
GC并不意味着内存泄漏。因此,内存诊断工具在这里起不了作用--或者它一定是一个错误的警报。
为了减少GC的内存消耗,您可能需要:
我不知道最小化窗口是如何启动GC的,但这肯定已经启动了GC,这样内存才能在事后被回收。
https://stackoverflow.com/questions/4302125
复制相似问题