2010-11-29 145 views
1

我使用Microsoft提供的COM和XML解析器來解析大約20個XML文件。該應用程序還使用庫提供的API來解析XML文檔。MSXML內存管理

MSXML3.0解析器似乎正在消耗大量的緩存內存(垃圾收集)。即使垃圾的概念是在緩存中引用相同的XML文檔,如果將來有任何參考,但在這裏它再次加載相同的XML ducument多次,這增加了我的應用程序的內存使用量。

我也試過用DevPartner工具進行調試,它似乎並沒有幫我解決這個問題。因爲它沒有顯示任何內存泄漏,但是任務管理器中的內存使用量不斷增加。

我來了解從下面的鏈接的垃圾收集:

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

它告訴改變REDIT進入「NoFullGC」禁用垃圾收集,我跟着這對測量值這個關鍵,但我無法找到它。我甚至無法在註冊表中找到MSXML3.0。

另一件我覺得很奇怪的事情是,一旦我最小化了應用程序窗口,這個進程分配的內存就被釋放了。 (這對我來說很奇怪)。

請幫我解決這個問題。

+0

另一件我覺得奇怪的事情是,一旦我最小化了應用程序窗口,這個進程分配的內存就被釋放了。 (這對我來說很奇怪)。 – Santhosh77 2010-11-29 09:22:50

回答

1

GC並不意味着內存泄漏。因此,內存診斷工具在這裏不能提供幫助 - 或者它必須是虛驚一場。如果可能的話

  • 切換到XmlLite

    爲了減輕GC的內存消耗,你可能想。它在所有支持的Windows中都可用。

  • 嘗試強制GC與DllCanUnloadNow在知識庫文章中指定。

我不知道如何最小化窗口可以啓動GC,但必須啓動GC,以便內存回收後。