0

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

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

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

4

1 回答 1

0

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

于 2012-11-06T20:58:00.467 回答