Android 从SD卡读取大xml文件的效率如何?

Android 从SD卡读取大xml文件的效率如何?,android,xml,performance,Android,Xml,Performance,我有一个很大的XML文件(6000行,1.4MB)存储在/mnt/sdcard文件夹中。我想从XML文件中读取一个节点,以从Android应用程序中的文件获取版本 由于文件很大并且存储在SD卡中,因此读取XML会降低性能吗?是的,读取和解析1.4 MB的XML需要一些时间(根据我的经验,我估计需要0.1到2秒)。多少取决于你如何去做,如果它是可以接受的,这取决于你认为可以接受的。我建议您自己对其进行基准测试 此外,使用SAX之类的解析器,一旦获得数据,就可以停止读取。这样,如果版本通常在开头,则

我有一个很大的XML文件(6000行,1.4MB)存储在
/mnt/sdcard
文件夹中。我想从XML文件中读取一个节点,以从Android应用程序中的文件获取版本


由于文件很大并且存储在SD卡中,因此读取XML会降低性能吗?

是的,读取和解析1.4 MB的XML需要一些时间(根据我的经验,我估计需要0.1到2秒)。多少取决于你如何去做,如果它是可以接受的,这取决于你认为可以接受的。我建议您自己对其进行基准测试


此外,使用SAX之类的解析器,一旦获得数据,就可以停止读取。这样,如果版本通常在开头,则不需要读取和解析整个文件。如果您知道版本总是第一行,那么性能可能会非常好。

如果您只需要读取一个节点,为什么不使用


与使用SAX或DOM进行解析相比,它可能提供性能加速,也可能不提供性能加速(您需要自己针对您的案例对其进行基准测试),但它可能会简化您的代码。

尝试一下,然后计时?虽然不是XML,但我已经在SD卡上使用120MB的OSM映射文件编写了一个应用程序,它运行得非常好。版本在XML中处于最低一行。是我的xml,我对
的版本感兴趣,然后我建议仍然使用SAX,当然只读取一次值,然后缓存它。如果这太慢了,并且您知道XML有一个精确的格式,并且您知道您的值在最后的n KB中,那么您可以读取最后的n KB并手动解析它(丑陋的hack)。