json解析性能比较(gson与jackson) (zz)

现在json的第三方解析工作很多,如json-lib,gson,jackson,fastjson等等。在我们完成一般的json-object转换工作时,几乎都没有任何问题。
但是当数据的量上来时,他们的性能几何呢?我着手测试了一下gson和jackson,其他的如json-lib性能很差,fastjson虽然性能很好,但是在使用时有些问题,所以这里就没有测试。

简略代码:
        //生成较大的json
        List list = new ArrayList();
        for (int i = 0; i < 500000; i++) {
            JsonObject obj = new JsonObject();
            obj.setId(i);
            obj.setName("name" + String.valueOf(i));
            list.add(obj);
        }

Gson gson = new GsonBuilder().create();
        String str = gson.toJson(list);

//1,gson解析
        long start1 = System.currentTimeMillis();
        List l = gson.fromJson(str, new TypeToken>() {
        }.getType());
        System.out.println("gson time elapse:" + (System.currentTimeMillis() - start1));
        System.out.println(l.size());

//2,jackson解析
        ObjectMapper mapper = new ObjectMapper();
        long start2 = System.currentTimeMillis();
        List l2 = mapper.readValue(str, new TypeReference>() {
        });
        System.out.println("jackson time elapse:" + (System.currentTimeMillis() - start2));
        System.out.println(l2.size());

测试结果:

数据集     gson耗时         Jackson耗时

10w           1366                   138

20w           2720                   165

30w           4706                   332

40w           9526                   317

50w           本机OOM             363

从测试结果可以看出,jackson的性能几乎是gson的10倍,而且随着数据的增长,jackson的耗时也都很平稳,而gson则耗时增长明显,最后直接OOM了,
至于为什么jackson性能这么好,我也没有细究,可能是由于jackson采用流的处理方式吧。

来源: http://blog.itpub.net/28912557/viewspace-1267965/

来自为知笔记(Wiz)

时间: 2025-01-15 13:52:00

json解析性能比较(gson与jackson) (zz)的相关文章

75、JSON 解析库---FastJson, Gson

JSON 的简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.用于数据转换传输, 通用于PHP,Java,C++,C#,Python等编程语言数据交换传输. 易于人阅读和编写,同时也易于机器解析和生成. 基本结构:对象.数组. Gson 的简介和特点: Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. 快速.高效 代码量少

Android平台json解析(FastJson Gson 大比拼)

前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和使用的大比拼. FastJson 当前使用版本 fastjson-1.2.11.jar 下载地址http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.11/ 对象转化成json: /** * 对象转化为json fastjson 使用方式 *

json解析:[1]gson解析json

客户端与服务器进行数据交互时,常常需要将数据在服务器端将数据转化成字符串并在客户端对json数据进行解析生成对象.但是用jsonObject和jsonArray解析相对麻烦.利用Gson和阿里的fastjson可以很方便的将下面四种常用的数据转换成json字符串,并能够将其解析成原数据对象 类型一:JavaBean 类型二:List<JavaBean> 类型三:List<String> 类型四:List<Map<String,Object>> 将上面的四种数

android JSON解析 fastjson和gson的使用

User user = new User(); user.setPhone("11111111"); user.setNmae("张三"); user.setPhone("twtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtw"); List<User> users = new ArrayList<>(); users.add(user); users.add(user); users.add(user);

[转] 各种Json解析工具比较 - json-lib/Jackson/Gson/FastJson

JSON技术的调研报告 一 .各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如

android:json解析的两个工具:Gson和Jackson的使用小样例

1.简单介绍 json是android与server通信过程中经常使用的数据格式,比如.例如以下是一个json格式的字符串: {"address":"Nanjing","name":"NUPT","students":[{"name":"stu1","id":"10000","age":20},{"

android:json解析的两个工具:Gson和Jackson的使用小例子

1.简介 json是android与服务器通信过程中常用的数据格式,例如,如下是一个json格式的字符串: {"address":"Nanjing","name":"NUPT","students":[{"name":"stu1","id":"10000","age":20},{"name"

JSON库之性能比较:JSON.simple VS GSON VS Jackson VS JSONP

http://www.open-open.com/lib/view/open1434377191317.html 近日做一些性能优化工作,在挑选JSON类库时,发现除了一般常用的JSON-lib外,还有一款号称性能最快的JSON处理器Jackson,于是用上了刚学会的JMeter,对这两个类库进行了简单的性能对比. Java中哪个JSON库的解析速度是最快的? JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考

Json学习总结(2)——Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson vs. JSONP

JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上它们的确是不太一样的.因此,我们运行了一个基准测试来对常用的几个JSON库进行了测试,看看在解析不同大小的文件时哪个库的速度是最快的.下面我会把结果分享给大家. JSON通常用于传输及解析大文件.这对运行在Hadoop或者是Spark集群上的数据处理程序而言是个很常见的场景.在给定的文件大小下,你可以