我们遇到了 MSXML 问题,
我们有一个应用程序(用 c plus 开发,作为 isapi 扩展(这意味着多线程请求)),它不断受到加载和解析 xmls 的请求。(如果加载和解析大量 xml 文件超载,则会出现无响应状态的虚拟内存问题)
我们正在使用 MSXML4.0。该应用程序可以运行好几天,只要有大量带有大量 xml 的请求,它就会进入非响应状态,这会导致重新启动应用程序
我检查了内存计数器和私有字节不是那么高..但是虚拟字节正在触及 2gb(在 32 位窗口上),我认为这达到了上限,所以它给出了问题,我看不到可以分配更多的内存(在新运算符的异常处理程序)
尝试了以下所有方法来降低虚拟字节但没有任何帮助,虚拟字节不断增长到 2gb 并最终停止应用程序:(
- 用 MSXML6.0 替换了 MSXML4.0(没有帮助)
- MSXML6.0 使用 NOFULLGC 注册表设置为 1(没有帮助)
- 在 CoUninitialize() 之前也尝试过 CoFreeUnusedLibraries() (没有帮助)
- 阅读几篇文章说使用 xmllite 而不是 msxml(不可能,需要付出巨大的努力)
在这方面的任何帮助将不胜感激。