加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用DOM解析XML时的最大大小

发布时间:2020-12-15 00:09:48 所属栏目:Java 来源:网络整理
导读:目前我正在实现一个REST客户端,它将解析 XML响应消息.稍后,它将在 Android设备上运行.因此,存储器和处理速度是一个很大的问题.但是,一次只有一个XML响应,因此一次处理或保存多个XML文档不是问题. 据我所知,有三种方法可以使用Android SDK解析XML: SAX XmlPu
目前我正在实现一个REST客户端,它将解析 XML响应消息.稍后,它将在 Android设备上运行.因此,存储器和处理速度是一个很大的问题.但是,一次只有一个XML响应,因此一次处理或保存多个XML文档不是问题.

据我所知,有三种方法可以使用Android SDK解析XML:

> SAX
> XmlPullParser
> DOM

阅读这些不同的解析方法,我得到了SAX建议用于大型XML文件,因为它不会像DOM那样在内存中保存完整的树.

但是,我问自己在千字节,兆字节,……等方面有多大?是否有实用的尺寸,使用SAX或DOM无关紧要?

谢谢,
罗伯特

解决方法

没有为XML文档或DOM大小设置标准限制,因此它完全取决于主机可以处理的内容.

当您在Android上实现时,您应该假设内存非常有限,并且记住DOM,XML解析器,程序逻辑,显示逻辑,JVM和Android本身都必须适合可用内存!

根据经验,您可以预期DOM占用的内存大约是源XML文档大小的四倍.假设512MB的可用内存,目标只占用DOM的一半,最终得到512/8或实际最大64MB的XML文档.

为了安全起见,我将再次减半到最大32MB.因此,如果您期望这么大的文档,我会转向SAX解析!

如果您希望应用程序在大型文档上以任何速度响应,那么SAX就是您的选择.一旦读取了第一个元素,SAX解析器就可以开始返回结果,DOM解析器需要在将任何输出发送到您的程序之前读取整个文档.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读