本篇文章只是在理论上讨论jackson fastjson 以及Gson 之间的比较,不涉及代码测试,写这篇文章主要是看到了一篇该方面文章,然后当作一次记录,里面加了少部分的其他内容,其中大部分内容直接使用的引用的博客。
- jackson:反射+反射缓存、良好的stream支持、高效的内存管理
- fastjson:
- jvm虚拟机:通过ASM库运行时生成parser字节码,支持的field不能超过200个。参考:。
- android虚拟机:反射的方式。
- gson:反射+反射缓存、支持部分stream、内存性能较差(gc问题)。
但是近两年fastjson 频频被爆出高危漏洞,真让人唏嘘
然而,FastJson并没有那么流行,有一个最直观的数据,那就是在Maven的中的引用量,和Jackson和Gson不在一个数量级,和Jackson强大的家族更没法比。
有一篇知乎帖子,讨论为什么外国友人不喜欢FastJson。结论就是FastJson是个代码质量不高的国产类库。完全颠覆了我的认知,因为在我的项目中,是经常使用FastJson的,并没有出现什么Bug,而且这段评论是在2016年写的。
所以 如果面试被问到为什么选用FastJson?
因为快!这一个理由就可以把他顶回去了,因为追求快,反而舍弃了很多其他方面,比如java特性的兼容,Json标准规范等。
到现在FastJson已经有了很多的更新,有一些问题也已经修改了,希望fastjson继续坚持。
冷启动问题
资源占用问题
gson反序列化/序列化json的时候内存管理不是太好,引发较多gc。gc问题
https://www.dazhuanlan.com/2020/01/29/5e31a8f46d593/
本文地址:https://blog.csdn.net/wangxuelei036/article/details/107361797
如对本文有疑问, 点击进行留言回复!!
Unity UGUI 之 实现按钮 Button 长按和双击的功能效果
[U3D Learning Note] Unity C# Surival Guide (1) -- Quick Tips and Assets
网友评论