java-json解析包对比

现在我们要来看看性能了,测试硬件配置:Intel Core i5 laptop with 2.50GHz 单通道DDR3 RAM 4G,软件配置:Windows 7 Ultimate 64-bit SP1

基准测试运行一样的虚拟机(JVM),在测试之前,每一个类库都有一个热身,去限制内存使用的造成的影响,用一个显式调用垃圾收集器。下面的图表代表的是序列化和反序列化JSON数据以毫秒级使用50次迭代和10次热身(warm-up)迭代的平均的时间。

(译者注:红色为序列化(Java对象转JSON),蓝色为反序列化(JSON转Java对象))

java-json解析包对比_第1张图片

上面的图表显示,Flexjson序列化小数据时是最快的,而JSON-lib是最慢的。反序列化的时候,Gson最快,JSON-lib还是最慢的。

下面的图表代表的是我们的数据在287kb时,序列化和反序列化所花费的平均时间。

java-json解析包对比_第2张图片

这张图显示,我们对少量的数据操作时,最快的是Gson ,之后的是 Genson和Flexjson。

当变成大数据时,结果变得很不一样。在下面的图表中,使用的是108Mb的数据,在序列化的时候,Jackson变成了最快的,Flexjson变成第二快。在反序列化的时候,JSON-lib变成了最快的,之前在处理小数据时,它是最慢的,第二快的是Jackson。

java-json解析包对比_第3张图片

下面的图表,显示的是处理更大一点的数据时,我们应该使用Jackson和JSON-lib。

java-json解析包对比_第4张图片

另外一个重要的测试是关于.jar包的大小。这对于移动端的开发很重要,我们从下图中看到,json-io最小,之后依次是Flexjson和JSONiJ:

java-json解析包对比_第5张图片

(三)结论

在这篇文章中,我们知道了七种方式来实现Java对象和JSON之间的互相转换。以及哪一个类库更快,哪一个更慢,在什么情况下使用等。作为结论,如果你在你的应用中是想使用小一点的数据量,你应该使用Flexjson或者Gson,如果你需要大的数据量你应该考虑Jackson 和JSON-lib。


文章来源:http://www.open-open.com/lib/view/open1397870197828.html

你可能感兴趣的:(java-json解析包对比)