der*_*rno 3 xml android dom sax ios
我一直在为iOS和Android开发一个相当简单的应用程序,它解析本地xml以形成项目列表并显示有关它们的信息.在查看我的解析选项时,我确定了用于android的本机SAX解析器,以及内置于objective-C的NSXMLparser类.在查看我的选项时,我反复看到人们说DOM解析器不适合大型xml文件.然而,没有人确切地定义了"大"意味着什么.在该应用程序的更高版本中,我正在考虑切换到DOM解析器.
我的问题是:你在哪里画线,并删除DOM解析器作为选项?有问题的平台是iOS和Android,当然这两个平台仍然有很多旧设备.因此,假设设备的速度低于平均值,那么绘制的线条在哪里?
谢谢您的考虑.
DOM解析器必须将整个XML加载到内存中.此外,与原始XML的大小相比,解析的XML通常占用5x-10x内存.
如果您知道应用程序允许的内存消耗是N兆字节RAM,那么您可以自己绘制该行:将N除以10.
例如,如果您不想超过10MB的RAM,则XML不应超过1MB.
只有最新的设备有1GB的RAM(在所有应用程序中分开),旧设备有512MB甚至256MB.256MB/10 = 25MB.您可能不希望占用超过10%的内存,因此所有平台上支持的DOM XML超过2.5MB都是太多了.
但是,这只是经验法则,只有现实生活测试可以告诉你真相.
| 归档时间: |
|
| 查看次数: |
2920 次 |
| 最近记录: |