当前位置:  开发笔记 > 编程语言 > 正文

Big XML文件和OutOfMemoryError

如何解决《BigXML文件和OutOfMemoryError》经验,为你挑选了2个好方法。

我正在尝试在java中解析高达500 MB的XML文件.我试图使用SAX,但它给了我这个错误java.lang.OutOfMemoryError:com.sun.org.apache.xerces.internal.util.XMLStringBuffer.append(未知来源)的Java堆空间你能帮帮我吗?非常感谢.PS较小的XML文件工作得很好



1> Michael Borg..:

很可能您没有正确使用SAX,或者您的应用程序不适合流处理.

SAX的重点是避免将整个XML结构保留在内存中,但只有在不保留太多上下文的情况下才能以小块的形式处理XML,并且处理结果要么比处理后的XML小得多(所以它不会使用太多的内存)或者本身可以传递给收件人或连续写入磁盘.

编辑:你也可能只是有内存泄漏,即你不再需要你不需要的数据,防止它被垃圾收集.如果您使用任何列表,映射或集来处理XML,请确保在开始下一个块之前删除在处理一个XML块时添加到它们的任何内容.



2> IAdapter..:

尝试使用Streaming API for XML(java6中的新增功能)来实现这一点

http://www.javabeat.net/articles/14-java-60-features-part-2-pluggable-annotation-proce-2.html

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有