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

前端之家收集整理的这篇文章主要介绍了java – 使用DOM解析XML时的最大大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我正在实现一个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解析器需要在将任何输出发送到您的程序之前读取整个文档.

原文链接:https://www.f2er.com/java/126590.html

猜你在找的Java相关文章