MSXML 的内存泄漏

ToperRay 2007-12-02 05:04:40
msxml处理xml数据当数据量非常大的时候,
为什么总会发生内存泄漏?
...全文
108 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
张琪Samuel 2007-12-14
而是批量处理非常多,SAX并不是个好主意。
^
不是太明白你的意思,如果对XML进行读取操作,那么SAX应该是优于DOM的。

此外可以检查一下代码或者做一下profile,看看问题是不是在MSXML或者是资源没有释放。还有一个建议是使用MSXML 6,有更好的安全性和性能保障。
回复
ToperRay 2007-12-14
不能十分确实是内存泄露,在8核CPU的服务器上跑5,6个小时就会发生异常,
而且内存比较大,基本到1G了。

数据量非常大不是指单个的XML文档非常大,
而是批量处理非常多,SAX并不是个好主意。
最大的XML文档个体才50M,而且数量不到1/1000000,
其余大部分是100K以下的。




回复
ToperRay 2007-12-14
数据量非常大不是指单个的XML文档非常大,而是很多小文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

是这个意思
回复
张琪Samuel 2007-12-13
你能确定这是内存泄漏么?MSXML底层采用了类似于GC的技术,所以突发内存占用或许非常大,但是会在合适的时机回收内存。由于MSXML是微软大多数产品的组成部分之一,所以健壮性是被历史证明了的。

此外,如果数据量非常大,可以采用SAX解析器,或者在DOM Parser中设置NewParser为True,或许能解决你的问题。如果MSXML不合适你,可以试试微软最新的XML Lite。
回复
发动态
发帖子
HTML/XML
创建于2007-09-28

3053

社区成员

VC/MFC HTML/XML
申请成为版主
社区公告
暂无公告