如何加速Android XML解析?

Mr.*_*ock 5 java xml android xml-parsing

下午好(取决于你住的地方)!

我是Android开发的新手,我正在努力将功能从现有的iOS应用程序转移到Android.此功能的一部分是解析包含大约500个条目的"大"(~13,000行)RSS XML文件.我花了10-15个小时在Android上研究XML解析并尝试使用主要的XML解析器:DOM,SAX和Pull-parsing.以下是我的结果,在我的盒子上的模拟器(32位Windows Vista,2.2 GHz双CPU,3 GB RAM)中运行:

SAX:约6:00分钟

拉解析:~4:00分钟

DOM:大于4:00分钟,但是当我编写实现代码时没有计时.

我也从github尝试过这个RSS阅读器,但花了> 10:00分钟:

https://github.com/matshofman/Android-RSS-Reader-Library

SAX,PP和DOM的实现都是从stackoverflow.com线程中获取的,所以我相信我没有做任何非标准的事情(尽管如此,我并没有把它排除在外).我决定吸引更多,更有经验的人群,以获得一些我可以尝试的想法.

我无法控制文件的格式.如果我实现这种端到端的方式,我只会编写一个Web服务,在服务器上完成所有繁重工作,然后发送一个小型,紧凑的JSON序列化列表.相反,我有13K行文件.:)

对我能做什么的任何见解?这似乎是一个相当普遍的问题,但大多数响应只是说尝试不同的主要XML解析器之一.在我的情况下,我已经尝试了所有三个,甚至最快似乎太慢了.

我究竟做错了什么?在Android上通过网络进行XML解析时,人们通常会遇到任何正常的"新手"问题吗?

提前感谢您提供的任何帮助!

Jav*_*ave 3

使用vtd-xml

以下是一些基准。

此外,模拟器非常慢,因此在真实设备上尝试一下,您可能会看到巨大的改进。

  • 正如您所回避的,最大的问题是模拟器非常慢。在我的 PC 上,XML 解析代码需要 7-8 分钟。在运行 Android 2.3.3 的旧 LG LS670 上,花了 6 秒!使用真实设备带来的“巨大改进”是今年的轻描淡写。哈!再次感谢你的帮助。 (2认同)