博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fastJson,jackJson,Gson性能比较
阅读量:7014 次
发布时间:2019-06-28

本文共 2260 字,大约阅读时间需要 7 分钟。

hot3.png

    在Java里面,我们经常使用JSON格式的工具包对字符串或者对象进行解析,一般用得比较广泛的三种分别为:fastJson,jackJson,Gson,关于各个工具包的性能比较网络上比比皆是,在这里我只阐述在我本机环境下的测试结果,然后在根据结果对三种工具包进行一个解析,首先先贴代码:

import java.util.Map;import org.codehaus.jackson.map.ObjectMapper;import com.alibaba.fastjson.JSONObject;import com.google.gson.Gson;public class JsonTest1 {	private static long count=10000;	/**	 * @param args	 * @throws Exception 	 */	public static void main(String[] args) throws Exception {		// TODO Auto-generated method stub		gson();		System.gc();		jackJson();		System.gc();		fastJson();		System.gc();		System.out.println("---------------------------------------------------------------");		gsonJson();		System.gc();		jackJsonJson();		System.gc();		fastJsonJson();	}		private static long gson(){		Demo demo=new Demo();		demo.setCmd("1");		demo.setContent("dd");		long endTime1=System.currentTimeMillis();				for(int i=0;i

运行结果如下:

我们可以看到fastJson的速度明显高于其他两个,真的是这样的吗?我们把代码在改进一下。

import java.util.Map;import org.codehaus.jackson.map.ObjectMapper;import com.alibaba.fastjson.JSONObject;import com.google.gson.Gson;public class JsonTest {	private static ObjectMapper objectMapper = new ObjectMapper();		private static Gson gson=new Gson();		private static JSONObject jsonObject=new JSONObject();		private static long count=10000;	/**	 * @param args	 * @throws Exception 	 */	public static void main(String[] args) throws Exception {		// TODO Auto-generated method stub		gson();		System.gc();		jackJson();		System.gc();		fastJson();		System.gc();		System.out.println("---------------------------------------------------------------");		gsonJson();		System.gc();		jackJsonJson();		System.gc();		fastJsonJson();	}		private static long gson(){		Demo demo=new Demo();		demo.setCmd("1");		demo.setContent("dd");		long endTime1=System.currentTimeMillis();				for(int i=0;i

运行结果如下:

看到差异了没?上面的第一部分的代码是每次都要去new新对象出来,在这点上导致了fastJson有绝对的优势,而当我们初始化的时候就把该准备的资源准备好呢?fastJson的优势一下就体现不出来了,经过多次测试发现最快的是gson。而且根据上面的结果我们可以看出来fastJson的优势是在json转化为对象的时候比较快,而对象转化为json格式的字符串的时候性能上是没什么优势的,反而是最差的。

结论:

  • 在做了初始化的情况下GSON的速度都是最快的。

  • 在使用GSON或jackJson做Json处理时最好有个全局的解析对象,不要每次调用的时候都去生成那样对性能的影响很大,另外经过测试,这里面没有线程安全问题。

  • fastJson在json转化为对象的应用场景下性能比较突出

本次的jar版本为:

fastJson版本为1.1.41

GSON:2.1

O

本文出自 “” 博客,请务必保留此出处

转载于:https://my.oschina.net/u/143244/blog/305499

你可能感兴趣的文章
postfix队列里邮件超时退信设置
查看>>
【博客话题】发肿是嫉妒的表现!谁像死人一样发肿!
查看>>
SSD数据可靠性问题分析
查看>>
RHEL(RedHat Enterprise Linux)5/6 ISO 镜像[转]
查看>>
Linux意外之rpm的删除与恢复
查看>>
SVN使用教程
查看>>
对vc++类和对象的逆向研究
查看>>
OD消息断点的设置方法
查看>>
nagios 监控 网卡流量 脚本
查看>>
物理机向虚拟机迁移P2V
查看>>
我的友情链接
查看>>
CentOS在ssh下远程重装系统
查看>>
nginx变量使用方法详解(1)
查看>>
<!DOCTYPE html>声明下div高度100%的问题
查看>>
踢出登录用户
查看>>
Linux下apache安全配置策略
查看>>
我的友情链接
查看>>
2014年PHP框架前十排行榜
查看>>
python2.x和python3.x的区别
查看>>
我的友情链接
查看>>