【问题标题】:Json parsing strategy in AndroidAndroid中的Json解析策略
【发布时间】:2012-11-06 20:38:17
【问题描述】:

我有一个大的 json 文件(~3.5 MB),包含(~140)个复杂对象,对象图中的最大深度约为 4-5。我使用Gson来解析它,但它真的很慢。我尝试了一些方法来解析它(比如混合解析或使用流解析),但我无法提高性能。

我检查了内存分析器,如果我只解析对象的基本 ID,它会杀死内存 (70-80%)。解析时内存中有 400-500k 个对象(主要是字符串和字符)。

如果对象图不那么深,解析会更有效吗?你有一个好主意怎么可能更好?我也尝试了其他库(如 Jackson),但性能并没有更好。

【问题讨论】:

    标签: android json performance parsing


    【解决方案1】:

    通过使用 Jackson,我获得了一些不错的性能提升 - 您不应该将整个 json 加载到内存中,而是使用 createJsonParser(Reader r)。如果它对您不起作用,那么请尝试拆分数据并使用单独的线程 - 如果单线程版本没有完全加载 CPU 是有意义的。否则尝试使用 JNI json 解析实现。

    【讨论】:

    • 感谢 marcin_j,仅解析整个 Json 的部分内容并使用 Jackson lib 我的问题已解决。结果:之前的解析时间约为 3 分钟,而现在只有 7 秒。内存使用要好得多:如果 20MB,则只有 3-4 MB。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    相关资源
    最近更新 更多