论坛首页 Java企业应用论坛

Fastjson使用github托管代码

浏览 8451 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-03   最后修改:2011-11-03
Fastjson使用越来越广泛,为了方便大家参与其中,从今天(2011-11-3)开始,把代码托管到github。

https://github.com/AlibabaTech/fastjson

欢迎大家fork和提交patch。

我在github上的帐号是https://github.com/wenshao
   发表时间:2011-11-03  
我就想解决1.1.1之后的版本,包括最新的1.1.8序列化速度特别慢的问题,如果是我测试的问题那代码也没变啊,只是换了一下fastjson的jar,速度下降了3倍
0 请登录后投票
   发表时间:2011-11-04  
对比了一下jackson1.9.0、fastjson1.1.1、fastjson1.1.9

序列化对象不包括Date、Timestamp时
fastjson1.1.1 比jackson1.9.0快 30%,fastjson1.1.9比jackson1.9.0慢 20%
时间分别是  1523  1020  1844

加上Date和Timestamp后
fastjson1.1.1 比jackson1.9.0快 5%,fastjson1.1.9比jackson1.9.0慢  160%
时间分别是  1687  1599  4362
0 请登录后投票
   发表时间:2011-11-05  
wtusmchen 写道
对比了一下jackson1.9.0、fastjson1.1.1、fastjson1.1.9

序列化对象不包括Date、Timestamp时
fastjson1.1.1 比jackson1.9.0快 30%,fastjson1.1.9比jackson1.9.0慢 20%
时间分别是  1523  1020  1844

加上Date和Timestamp后
fastjson1.1.1 比jackson1.9.0快 5%,fastjson1.1.9比jackson1.9.0慢  160%
时间分别是  1687  1599  4362


把DisableCircularReferenceDetect这个特性打开看看?

主要是加入了循环引用检测的原因吧!
0 请登录后投票
   发表时间:2011-11-05   最后修改:2011-11-05
wtusmchen 写道
对比了一下jackson1.9.0、fastjson1.1.1、fastjson1.1.9

序列化对象不包括Date、Timestamp时
fastjson1.1.1 比jackson1.9.0快 30%,fastjson1.1.9比jackson1.9.0慢 20%
时间分别是  1523  1020  1844

加上Date和Timestamp后
fastjson1.1.1 比jackson1.9.0快 5%,fastjson1.1.9比jackson1.9.0慢  160%
时间分别是  1687  1599  4362


能不能把测试数据以及数据量大小贴出来给大家看看,最好是有不同数据量和常用数据结构序列化和反序列化对比测试情况,这样才有说服力。简单的数据结构和小数据量的测试结果并不具备代表性,测试结果的可信度也不高。
0 请登录后投票
   发表时间:2011-11-05   最后修改:2011-11-05
jackson和fastjson的实现原理和机制都没有仔细研究过,个人感觉jackson 毕竟是一个成熟的json处理库,考虑的面会比较广。因此jackson在尽量顾及高性能的情况下,会以一定的性能开销为代价以便支持更加广泛的数据类型和数据安全转换处理机制。fastjson前期版本的性能表现比jackson要好很多,估计只是考虑了基本的数据类型的一些简单的json转换处理,但是随着机制和功能的不断完善,性能的损耗也越来越来明显,以至于反而比不上jackson的性能了

综上看来,一般的开源项目都将经历一个性能和功能之间的相互制约和平衡的过程,在这点上国人还有很长的路要走。
0 请登录后投票
   发表时间:2011-11-06  
yin_bp 写道
jackson和fastjson的实现原理和机制都没有仔细研究过,个人感觉jackson 毕竟是一个成熟的json处理库,考虑的面会比较广。因此jackson在尽量顾及高性能的情况下,会以一定的性能开销为代价以便支持更加广泛的数据类型和数据安全转换处理机制。fastjson前期版本的性能表现比jackson要好很多,估计只是考虑了基本的数据类型的一些简单的json转换处理,但是随着机制和功能的不断完善,性能的损耗也越来越来明显,以至于反而比不上jackson的性能了

综上看来,一般的开源项目都将经历一个性能和功能之间的相互制约和平衡的过程,在这点上国人还有很长的路要走。


fastjson目前支持的功能比jackson多,目标是java全序列化支持,能够支持循环引用、按需要自带带类型信息的自省,这些都是其他json库不存在的。为什么1.1.2之后的序列化变慢了,主要是缺省打开了支持循环引用的特性。

从目前的情况来看,fastjson可以应用的范围要比jackson要广很多,目前一些项目的使用fastjson的原因是,只有fastjson能够满足需求,其他的都不能。
0 请登录后投票
   发表时间:2011-11-06  
lz 能不能举个使用fastjson而jackson不适用的场景!!!!!!!!!!
0 请登录后投票
   发表时间:2011-11-06  
kjj 写道
lz 能不能举个使用fastjson而jackson不适用的场景!!!!!!!!!!


比如:
1、循环引用的支持
2、全序列化的支持,比如说
class VO {
List<Object> values;
}

values保存的是不同类型的对象,反序列化回来的时候需要把原来的对象类型自动识别。在fastjson中只需要打开WriteClassName特性就可以了。
3、超复杂对象的JSON对象反序列化,一个fastjson的用户,其json结构嵌套层次60多层,只有fastjson能够处理。


其中1、2是替代java、hessian等序列化实现的关键。
0 请登录后投票
   发表时间:2011-11-06  
感谢楼主贡献这么好的东西,最近在学习dubbo,也看到了fastjson,请问上面贴子中提到的那几个特性怎么配置?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics