2012-11-06 50 views
0

我有一個大的json文件(〜3.5 MB),有(〜140)個複雜對象,對象圖中的最大深度約爲4-5。我使用Gson來解析它,但它真的很慢。我試過一些方法來解析它(如混合解析或使用流解析),但我無法提高性能。Android中的Json解析策略

我檢查了內存分析器,它殺死內存(70-80%),如果我只解析對象的基本Id。解析時,內存中有400-500個對象(主要是字符串和字符)。

如果對象圖不那麼深,分析效率會更高嗎?你有一個好主意怎麼會更好?我也嘗試過其他庫(如傑克遜),但表現並不好。

回答

0

我使用Jackson有一些很好的性能提升 - 你不應該把整個json加載到內存中,而是使用createJsonParser(Reader r)。如果它不適合你,那麼要麼嘗試分離數據並使用單獨的線程 - 如果CPU沒有被單線程版本完全加載,這是有意義的。否則,請嘗試使用JNI json解析實現。

+0

感謝marcin_j,只解析了部分整個Json和Jackson lib,我的問題解決了。 結果:解析時間在〜3分鐘之前,現在只有7秒。 內存使用情況要好得多:如果是20MB,則只需要3-4 MB。 –