android - 数据结构的最快序列化/反序列化模式

标签 android serialization data-structures sax protocol-buffers

我有一个 android 应用程序,它使用一个数据结构,该数据结构由几个二叉树和其他结构(如列表和数组)组成,它们都相互链接。我希望大家提出一个保存和检索此数据结构的方案。数据结构是通过 SAX 解析创建的(源是 XML 文件)。我已经尝试过 java 序列化/反序列化,但发现它至少比使用原始 SAX 解析器构建结构慢两倍。 serailzation(RAM 到存储)时间不是很重要,因为它将作为后台进程进行,但我想要一个更快的反序列化(存储到 RAM)方案。

我不想要任何类型检查功能等。我想要的只是一个快速的序列化和更快的反序列化方案。 Google 的 Protocol Buffer 也是一个不错的选择吗?请建议..

(注意:我的应用程序将显示一个空白窗口(Activity),直到数据结构被反序列化,所以速度是最重要的,我已经尽可能地缩小了我的 DS 的皮肤)

提前致谢

最佳答案

默认反序列化通常很慢,因为它广泛依赖于反射(很慢)。您可以尝试通过 redefining readObject/writeObject 手动实现它在您的类里面,它通常会带来显着的性能提升。

关于android - 数据结构的最快序列化/反序列化模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160928/

相关文章:

c# - 我想要以 (start,end) 为键的数据结构,然后能够在整个数据结构中搜索整数并获得相应的值

java - 存储字符串且忽略字母大小写的数据结构

c# - 为什么在使用 C# JavaScriptSerializer 和 RegisterClientScriptBlock 时 JSON 标签无效?

ruby - 序列化压缩

c - 将一串单词存储在数据结构中

java - android studio\Java\jdk1.8.0_65\bin\java.exe 中的错误'' 以非零退出值 2 完成

wpf - 将 WPF FlowDocuments 序列化到/从 PackagePart(包括图像等)

android - 工具栏上的文本背景问题

java - 当应用程序未运行时,应用程序在解析推送通知时崩溃

安卓开发 : How To Add App To The Application Chooser?