优化反序列化的最佳方法是什么?
我目前正在使用标准的Gson.toJson和Gson.fromJson方法对一些复杂对象进行序列化和反序列化,我希望尽可能减少反序列化时间.
如果重要的话,我的对象中最复杂的包含43个变量.
Pro*_*uce 16
如果你想使用Gson,而不是切换到另一个Java-to-from-JSON API,并且如果Gson的自动数据绑定的性能不够好,那么可以继续使用Gson API,并挤出一些性能稍好一点.
在https://github.com/eishay/jvm-serializers/wiki上发布的最新一轮性能测试中,结果表明,通过使用流式传输,Gson序列化和反序列化的综合性能可能会提高约25%.Gson的API而不是数据绑定.
注意,这通常使用户代码的实现变得非常复杂,其中与使用数据绑定API的单行可比较的解决方案例如new Gson().toJson(something)被(容易地)数十行代替,包括循环和条件.因此,改进性能的代价是更复杂的代码.
有关使用流API与数据绑定API的示例,请查看jvm-serializers项目中的JsonGsonManual和JsonGsonDatabind实现.
(注意:也可以使用Gson API中的树模型,而不是流式或数据绑定API,但它似乎没有提供任何相比数据绑定的性能改进.例如,请参阅JsonGsonTree.)
| 归档时间: |
|
| 查看次数: |
14465 次 |
| 最近记录: |