首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSXML内存管理

MSXML内存管理
EN

Stack Overflow用户
提问于 2010-11-29 08:51:28
回答 1查看 1.5K关注 0票数 1

我正在使用Microsoft提供的COM和XML解析器来解析大约20个XML文件。应用程序还使用库提供的API来解析XML文档。

MSXML3.0解析器似乎占用了大量内存用于缓存(垃圾收集)。即使垃圾的概念是在缓存中引用相同的XML文档(如果将来有任何引用),但是在这里它再次多次加载相同的XML文档,从而增加了我的应用程序的内存使用量。

我还试着用DevPartner工具进行调试,但它似乎帮不了我。因为它没有显示任何内存泄漏,但是任务管理器中的内存使用量不断增加。

我从下面的链接了解了垃圾收集:

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

它告诉我们通过更改redit条目'NoFullGC‘来禁用垃圾回收,我按照这个命令找到了这个键,但是我找不到它。我甚至在regedit中找不到MSXML3.0。

我觉得奇怪的另一件事是,一旦我最小化应用程序窗口,这个进程分配的内存就被释放了。(这对我来说很奇怪)。

请帮我摆脱这一切。

EN

回答 1

Stack Overflow用户

发布于 2010-12-01 14:10:50

GC并不意味着内存泄漏。因此,内存诊断工具在这里起不了作用--或者它一定是一个错误的警报。

为了减少GC的内存消耗,您可能需要:

  • 如果可能的话,切换到XmlLite。它可在所有受支持的Windows中使用。
  • 尝试强制GC使用DllCanUnloadNow,如KB文章中所指定的那样。

我不知道最小化窗口是如何启动GC的,但这肯定已经启动了GC,这样内存才能在事后被回收。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4302125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档