json解析效能比較(gson與jackson)
現在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());
測試結果:
從測試結果可以看出,jackson的效能幾乎是gson的10倍,而且隨著資料的增長,jackson的耗時也都很平穩,而gson則耗時增長明顯,最後直接OOM了,
至於為什麼jackson效能這麼好,我也沒有細究,可能是由於jackson採用流的處理方式吧。
但是當資料的量上來時,他們的效能幾何呢?我著手測試了一下gson和jackson,其他的如json-lib效能很差,fastjson雖然效能很好,但是在使用時有些問題,所以這裡就沒有測試。
簡略程式碼:
//生成較大的json
List
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採用流的處理方式吧。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1267965/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Jackson Gson Json.simple 比較JSON
- Java 下的 JSON庫效能比較:JSON.simple vs. GSON vs. Jackson vs. JSONPJavaJSON
- JSON解析器之Gson、FastJson、JacksonJSONAST
- Gson – 比較兩個順序無關的json字串JSON字串
- Json解析之Gson庫JSON
- JSON介紹及Android最全面解析方法(Gson、AS自帶org.son、Jackson解析)JSONAndroid
- Android總結之json解析(FastJson Gson 對比)AndroidJSONAST
- android使用Gson來解析jsonAndroidJSON
- Java幾種常用JSON庫效能比較JavaJSON
- SQLServer中XML與JSON應用比較SQLServerXMLJSON
- Java JIT與AOT效能比較 - foojayJava
- PHP autoload與include效能比較PHP
- PostgreSQL、Redis與Memcached的效能比較 - CYBERTECSQLRedis
- WCF與ASP.NET Core效能比較ASP.NET
- FastJson、Jackson、Gson進行Java物件轉換Json的細節處理ASTJSONJava物件
- 終極CRUD-3-用Jackson解析jsonJSON
- 一文搞定Jackson解析JSON資料JSON
- JAVA IO效能比較Java
- 批量更新效能比較
- MySQL中MyISAM引擎與InnoDB引擎效能比較MySql
- Wicket、Grails與JSF/seam, tapestry效能比較AIJS
- json與gson工具轉換案例及區別JSON
- 如何使用JSON和GSONJSON
- Apache與Nginx的優缺點、效能比較,到底選擇哪個比較好?ApacheNginx
- XML的四種解析器原理及效能比較(轉)XML
- PHP file_get_contents 與 curl 效能比較PHP
- Caddy 與 Nginx的基準效能比較 - tjllNginx
- Node.js與Io.js的效能比較Node.js
- 比 encoding/json 更快地解析 jsonEncodingJSON
- python比較json/dictionary的庫PythonJSON
- 還在比較 JSON 和 XML?Stop!JSONXML
- NATS訊息傳遞與REST效能比較 | VinsguruREST
- Jackson 解析json資料之忽略解析欄位註解@JsonIgnorePropertiesJSON
- Java中List集合效能比較Java
- 排序演算法效能比較排序演算法
- python 批量resize效能比較Python
- JavaScript 字串連線效能比較JavaScript字串
- 效能比較工具runStats_pkg