2

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

我也尝试过使用ObjectWritersand ObjectReaders,但这并没有提供任何显着的速度优势。我正在使用以下设置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 并将它们存储在单独的文件中。我目前正在计时序列化并写入文件,而不是相反。这些 POJO 中有一半相当复杂(引用了其他 POJO 的列表)。我正在设备上进行测试(运行 Android 4.1 的 Galaxy Tab 10-1)。对于序列化和 Jackson/JSON,该过程大约需要 6 秒,两种方法之间的差异在误差范围内(重复测试运行的变化)。

关于 Android 上的“非常慢的序列化”如何与“非常快的”Jackson/JSON 大致相同的任何建议?有什么方法可以显着加快杰克逊的速度吗?

4

0 回答 0