Jackson,Gson,Fastjson的解析时间对比
2017-11-12 14:19
447 查看
Jackson版本:2.9.1
Gson版本:2.8.2
Fastjson版本:1.2.40
pom.xml加入依赖
新建Bean类
测试类
测试结果:
解析二十万次(毫秒)
解析二百万次(毫秒)
解析二千万次(毫秒)
结论:
十万次以下,三个解析时间相差不大,
十万次以上的话,三个比例可以为:
Jackson:Gson:Fastjson = 5:11:2
所以无论什么情况下,还是Fastjson解析时间最快。
Gson版本:2.8.2
Fastjson版本:1.2.40
pom.xml加入依赖
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.40</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.1</version> </dependency>
新建Bean类
package com; public class Book{ private String id; private String name; public Book() { super(); } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Book{" + "id='" + id + '\'' + ", name='" + name + '\'' + '}'; } }
测试类
package com; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import com.alibaba.fastjson.JSON; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; /** * Created by admin on 2017/11/12. */ public class Time { private final static Logger log = LoggerFactory.getLogger(Time.class); static void jackJson(String jsonStr, int num) throws IOException { long start = System.currentTimeMillis(); // 记录起始时间 Book book = new Book(); ObjectMapper mapper = new ObjectMapper(); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); for (int j = 0; j<num; j++){ book = mapper.readValue(jsonStr, Book.class); } long end = System.currentTimeMillis(); log.error("jackJson循环 {} 次花费的时间为:{}", num, end-start); } static void fastJson(String jsonStr, int num){ long start = System.currentTimeMillis(); // 记录起始时间 Book book = new Book(); for (int j = 0; j<num; j++){ book = JSON.parseObject(jsonStr, Book.class); } long end = System.currentTimeMillis(); log.error("fastJson循环 {} 次花费的时间为:{}", num, end-start); } static void gson(String jsonStr, int num){ long start = System.currentTimeMillis(); // 记录起始时间 Gson gson = new Gson(); Book book = new Book(); for (int j = 0; j<num; j++){ book = gson.fromJson(jsonStr, Book.class); } long end = System.currentTimeMillis(); log.error("Gson循环 {} 次花费的时间为:{}", num, end-start); } public static void main(String[] args) throws IOException { String jsonStr = "{\"id\":\"2\",\"name\":\"Json技术\"}"; fastJson(jsonStr, 50000); gson(jsonStr, 50000); jackJson(jsonStr, 50000); log.error("-----------------------------------------------------"); fastJson(jsonStr, 500000); gson(jsonStr, 500000); jackJson(jsonStr, 500000); log.error("-----------------------------------------------------"); fastJson(jsonStr, 800000); gson(jsonStr, 800000); jackJson(jsonStr, 800000); log.error("-----------------------------------------------------"); fastJson(jsonStr, 2000000); gson(jsonStr, 2000000); jackJson(jsonStr, 2000000); log.error("-----------------------------------------------------"); fastJson(jsonStr, 8000000); gson(jsonStr, 8000000); jackJson(jsonStr, 8000000); log.error("-----------------------------------------------------"); fastJson(jsonStr, 200000000); gson(jsonStr, 200000000); jackJson(jsonStr, 200000000); } }
测试结果:
解析二十万次(毫秒)
类型 | 第一次 | 第二次 | 第三次 |
---|---|---|---|
FastJson | 239 | 249 | 237 |
Gson | 1170 | 1129 | 1156 |
JackSon | 552 | 527 | 535 |
类型 | 第一次 | 第二次 | 第三次 |
---|---|---|---|
FastJson | 2845 | 2420 | 2379 |
Gson | 11238 | 11412 | 11247 |
JackSon | 5917 | 5441 | 5468 |
类型 | 第一次 | 第二次 | 第三次 |
---|---|---|---|
FastJson | 24182 | ||
Gson | 102649 | ||
JackSon | 54319 |
十万次以下,三个解析时间相差不大,
十万次以上的话,三个比例可以为:
Jackson:Gson:Fastjson = 5:11:2
所以无论什么情况下,还是Fastjson解析时间最快。
相关文章推荐
- Android 中Json解析的几种框架(Gson、Jackson、FastJson、LoganSquare)使用与对比
- Android 中Json解析的几种框架(Gson、Jackson、FastJson、LoganSquare)使用与对比
- Android Jackson、Gson、FastJson解析框架对比
- fastjson,gson,jackson类型性能对比
- json-lib(ezmorph)、gson、flexJson、fastjson、jackson对比,实现java转json,json转java
- FastJSON、Gson和Jackson性能对比和共同缺点,注意事项
- 各个JSON技术的比较(Jackson,Gson,Fastjson)的对比
- Android json解析(FastJson Gson 对比)
- FastJSON、Gson和Jackson性能对比
- [转] 各种Json解析工具比较 - json-lib/Jackson/Gson/FastJson
- 各个JSON技术的比较(Jackson,Gson,Fastjson)的对比
- FastJSON、Gson和Jackson性能对比
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
- Android总结之json解析(FastJson Gson 对比)[申明:来源于网络]
- Gson和Fastjson解析对比
- FastJSON、Gson和Jackson性能对比
- FastJSON、Gson和Jackson的性能对比
- Android中Json数据解析(二)--使用Gson、Jackson和FastJson解析Json数据
- Android总结之json解析(FastJson Gson 对比)
- FastJSON、Gson和Jackson性能对比