我正在使用 Gson 反序列化大量 JSON 文档,性能分析表明垃圾收集很难跟上,因此暂停时间非常长。我怀疑 Gson 会为 JSON 文档中的所有元素创建大量字符串,并且在处理完这些元素后会很快再次释放出来。
我用谷歌搜索并发现了一些没有导致任何地方的讨论。
我同意实习所有字符串没有用,如果您指定应该实习哪些东西,实习通常很有用,例如 JSON 中的地图键通常是一个不错的选择。
有没有办法告诉 Gson 哪些字符串要实习,例如通过专门的序列化程序?或者有没有办法为映射键之类的东西设置一个 StringPool,以避免一直在堆上分配这些项目。