XML with SimpleXML Library - Android 上的 Performance
我正在使用 Simple XML 库来处理 Android 应用程序中的 XML 文件。这些文件可以变得相当大 - 大约1Mb,并且可以嵌套得很深,所以它们相当复杂。
当应用通过简单 API 加载其中一个文件时,最多可能需要 30 秒才能完成。目前,我正在将FileInputStream传递到Simple的 Persister类的[read(Class,InputStream)][2]方法中。实际上,它只是读取 XML 节点并将数据映射到我的模型对象的实例,从而复制内存中的 XML 树结构。
那么我的问题是,如何提高Android上的性能?我目前的想法是将文件的内容读取到一个字节数组中,然后将ByteArrayInputStream传递给 Persister的读取方法。我想处理文件的时间会更快,但我不确定节省的时间是否会被首先读取整个文件所花费的时间抵消。此外,内存约束也可能是一个问题。
这是愚蠢的差事吗?在这种情况下,我还能做些什么来提高性能吗?如果没有,我将不得不诉诸于改进对用户加载文件进度的反馈。
一些注意事项:
1)我无法更改我正在使用的XML库 - 有问题的代码是跨桌面,移动和Web应用程序使用的“引擎”的一部分。改变它的开销对于时间来说太过分了。
2)数据文件是由用户创建的,因此我无法控制嵌套在其中的大小/深度。