在安卓上选择SQLite的性能

3
我正在使用SQLite在Android上开发应用程序。由于我对SQLite还很陌生,因此我想询问一个设计选择的问题。
如果您想将一个对象(表示DB中的一行)从一个活动传递到另一个活动,下面哪个更快和/或资源更有效?
1. 将对象序列化为JSON,使用intent发送并在另一端进行反序列化。 2. 仅发送记录ID,并在其他活动中重新从数据库检索记录。
无论哪种情况,这两种选择之间的性能差异是多少?

你也可以维护一个对象管理器,它管理着表索引到对象的映射。 - ahodder
1个回答

1

这真的取决于你的行大小。如果它相对较小(一些基元),传递序列化数据并不是什么大问题,尽管你可能想使用比JSON更轻量级的东西。如果你有大量的数据集(blob等),那么从磁盘获取行与序列化和反序列化带来的性能损失可能是相等或更少的。理想情况下,你只需要获取一次数据并将其存储在单例中,以便由不同的活动访问,很可能作为POJOs。


静态变量:非常好的建议,也解决了我的问题,远远超出了这个问题。非常感谢...不过还有一个问题:比JSON更轻的是什么?JSON几乎是我能想到的最轻的序列化数据形式。 - e-mre
你说得对,JSON 传输轻便且渲染迅速,但解析器相当笨重。Bencode 更轻巧。我使用过的最轻量级的方法只是串联<length>;<string>值,它仅需不到10行的代码+样板。 - 323go

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接