【发布时间】:2010-11-29 08:51:28
【问题描述】:
我正在使用微软提供的 COM 和 XML 解析器来解析大约 20 个 XML 文件。该应用程序还使用库提供的 API 来解析 XML 文档。
MSXML3.0 解析器似乎正在消耗大量内存用于缓存(垃圾收集)。即使垃圾的概念是在缓存中引用相同的 XML 文档,如果有任何将来的引用,但在这里它再次加载相同的 XML 文档多次,这反过来又增加了我的应用程序的内存使用量。
我还尝试使用 DevPartner 工具进行调试,但它似乎并没有帮助我解决这个问题。因为它没有显示任何内存泄漏,但任务管理器中的内存使用量不断增加。
我是通过以下链接了解垃圾收集的:
http://support.microsoft.com/kb/304227
它告诉通过更改 redit 条目“NoFullGC”来禁用垃圾收集,我按照这个来找到这个键,但我找不到它。我什至在注册表中都找不到MSXML3.0。
我觉得奇怪的另一件事是,一旦我最小化应用程序窗口,这个进程分配的内存就会被释放。 (这对我来说很奇怪)。
请帮我解决这个问题。
【问题讨论】:
-
我觉得奇怪的另一件事是,一旦我最小化应用程序窗口,这个进程分配的内存就会被释放。 (这对我来说很奇怪)。
-
您正在查看当您最小化窗口时被 Windows 清空的“工作集”。通常最好查看“提交大小”数字(或 XP 及更早版本中的“虚拟机大小”),即您要求的内存量(工作集是 Windows 给您的量)。