MSXML导致虚拟内存耗尽,最终应用程序永远挂起

时间:2013-06-15 16:17:14

标签: c++ memory hang msxml isapi

我们遇到了MSXML的问题,

我们有一个应用程序(用c + plus开发,作为isapi扩展(这意味着多线程请求)),它不断受到加载请求和解析xmls的影响。 (如果要加载大量的xml文件来加载和解析,它会给出非响应状态的虚拟内存问题)

我们正在使用MSXML4.0。该应用程序运行良好数天,每当有大量xmls请求时,它会进入非重新编码状态,从而导致重新启动应用程序

我检查了内存计数器和私有字节不是那么高..但虚拟字节触摸2gb(在32位窗口上),我认为达到上限,所以它给出问题,我可以看到没有更多的内存可以分配(在新运算符的异常处理程序中捕获错误)

尝试以下所有操作来拉下虚拟字节但没有一个帮助,虚拟字节不断增长以触及2gb并最终停止应用程序:(

  • 将MSXML4.0替换为MSXML6.0(没有帮助)
  • 使用MSXML6.0将NOFULLGC注册表设置为1(没有帮助)
  • 在CoUninitialize()之前尝试了CoFreeUnusedLibraries()(没有帮助)
  • 阅读一些文章说使用xmllite而不是msxml(不可能,需要付出巨大努力)

在这方面的任何帮助将非常感激。

0 个答案:

没有答案