Memory MSXML内存管理
我正在使用微软提供的COM和XML解析器来解析大约20个XML文件。应用程序还使用库提供的API来解析XML文档 MSXML3.0解析器似乎正在为缓存(垃圾收集)消耗大量内存。即使垃圾的概念是在缓存中引用相同的XML文档(如果将来有任何引用),但在这里它再次多次加载相同的XML数据,从而增加了应用程序的内存使用 我还尝试过使用DevPartner工具进行调试,但它似乎并没有帮我解决这个问题。因为它没有为此显示任何内存泄漏,但任务管理器中的内存使用率一直在增加 我是通过以下链接了解垃圾收集的: 它告诉我要通过更改redit条目“NoFullGC”来禁用垃圾收集,我按照这个来fnd这个键,但是我找不到它。我甚至在regedit中找不到MSXML3.0Memory MSXML内存管理,memory,msxml,Memory,Msxml,我正在使用微软提供的COM和XML解析器来解析大约20个XML文件。应用程序还使用库提供的API来解析XML文档 MSXML3.0解析器似乎正在为缓存(垃圾收集)消耗大量内存。即使垃圾的概念是在缓存中引用相同的XML文档(如果将来有任何引用),但在这里它再次多次加载相同的XML数据,从而增加了应用程序的内存使用 我还尝试过使用DevPartner工具进行调试,但它似乎并没有帮我解决这个问题。因为它没有为此显示任何内存泄漏,但任务管理器中的内存使用率一直在增加 我是通过以下链接了解垃圾收集的:
另一件我觉得奇怪的事情是,一旦我最小化应用程序窗口,这个进程分配的内存就被释放了。(这对我来说很奇怪)
请帮我解决这个问题。GC并不意味着内存泄漏。因此,内存诊断工具在这里帮不上忙——或者它一定是一个假警报 为了减少GC的内存消耗,您可能需要:
- 如果可能,请切换到。它在所有受支持的窗口中都可用
- 按照KB文章中的指定,尝试使用DllCanUnloadNow强制GC
我不确定最小化窗口如何启动GC,但这一定启动了GC,以便以后可以回收内存。GC并不意味着内存泄漏。因此,内存诊断工具在这里帮不上忙——或者它一定是一个假警报 为了减少GC的内存消耗,您可能需要:
- 如果可能,请切换到。它在所有受支持的窗口中都可用
- 按照KB文章中的指定,尝试使用DllCanUnloadNow强制GC
我不确定最小化窗口如何启动GC,但这一定启动了GC,以便以后可以回收内存。我发现另一件奇怪的事情是,在最小化应用程序窗口后,此进程分配的内存被释放。(这对我来说非常奇怪)。当你最小化一个窗口时,你看到的是被窗口清空的“工作集”。通常最好看一下“提交大小”数字(或XP及更早版本中的“VM大小”),这是您要求的内存量(工作集是Windows给您的内存量)。另一件我觉得奇怪的事情是,在最小化应用程序窗口后,此进程分配的内存被释放。(这对我来说非常奇怪)。当你最小化一个窗口时,你看到的是被窗口清空的“工作集”。通常最好查看“提交大小”数字(或XP及更早版本中的“VM大小”),这是您要求的内存量(工作集是Windows给您的内存量)。