Android持久数据 - 序列化与杰克逊+ JSON

时间:2013-08-17 10:12:49

标签: android json performance serialization jackson

我的Android应用程序使用文件中的ObjectOutputStream存储数据。我们有意识地决定不使用数据库。我最近读到,Android上的序列化被认为非常慢。此外,使用Jackson + JSON的速度很快。 然而,在合并Jackson / JSON之后,似乎将POJO存储在具有Jackson / JSON的文件中并不是更快,有时甚至比序列化更慢。我正在使用Jackson v2.2的核心库

我也尝试过使用ObjectWritersObjectReaders,但这并没有带来任何显着的速度优势。 我正在使用ObjectMapper的以下设置(我在全局创建一个):

mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY);
mapper.setVisibility(JsonMethod.GETTER, Visibility.NONE);
mapper.setVisibility(JsonMethod.SETTER, Visibility.NONE);
mapper.setVisibility(JsonMethod.IS_GETTER, Visibility.NONE);
mapper.configure(SerializationConfig.Feature.USE_ANNOTATIONS, false);
mapper.configure(DeserializationConfig.Feature.USE_ANNOTATIONS, false);

当我说没有速度优势时,我正在考虑约400个POJO并将它们存储在单独的文件中。我目前正在计时Serializtion和写入文件,而不是相反。这些POJO中有一半相当复杂(参考其他POJO列表)。我正在测试设备(运行Android 4.1的Galaxy Tab 10-1)。使用序列化和杰克逊/ JSON这个过程大约需要6秒,两种方法之间的差异在误差范围内(重复测试运行的变化)。

关于Android上“非常慢的序列化”可能与“非常快”的Jackson / JSON大致相同的任何建议?是否有一些方法可以大大加快杰克逊的速度?

0 个答案:

没有答案