日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Jackson、JSON-lib、Gson性能对比

發布時間:2023/11/29 javascript 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jackson、JSON-lib、Gson性能对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

????????近日做一些性能優化工作,在挑選JSON類庫時,發現除了一般常用的JSON-lib外,還有一款號稱性能最快的JSON處理器Jackson,于是用上了剛學會的JMeter,對這兩個類庫進行了簡單的性能對比。?

Jackson:http://jackson.codehaus.org/?

JSON-lib:http://json-lib.sourceforge.net/?

Gson:http://code.google.com/p/google-gson/

測試環境:

1、工作電腦:Intel雙核E8400 共6GHz,內存4GB,WinXP

2、JSON-lib用最新的JDK15,GSON版本是最新的v1.4,Jackson也是最新的v1.5.5,JDK-v1.6.0_20,JMeter-v2.4

3、測試時不開啟任何無關進程,每完成一項測試后關閉JMeter整理內存后,再進行下一項測試,每項測試運行3次,取平均值

4、JSON轉Java Bean意為將JSON格式轉換成Java類,這個類內包括Map、List、Date、Integer/Long/Double、String等類型的屬性,Java Bean轉Json則同理。另外,兩者互轉,每次轉換的數據都是隨機生成。

測試結果:

* 吞吐量的值越大越好,總耗時的值越小越好

JSON轉Bean,5個線程并發,約200字節對象,1千萬次轉換:


JacksonJSON-libGson
TPS64113.78067.413952.8
總耗時(秒)1551238700

Bean轉JSON,5個線程并發,約200字節對象,1千萬次轉換:


JacksonJSON-libGson
TPS5480215093.217308.2
總耗時(秒)181661560

JSON轉Bean,5個線程并發,約2K對象,1千萬次轉換:


JacksonJSON-libGson
TPS373144274.84977.00
總耗時(秒)32223202000

Bean轉JSON,5個線程并發,約2K對象,1千萬次轉換:


JacksonJSON-libGson
TPS30922.24274.84977.00
總耗時(秒)32223202000


測試總結:

1、顯而易見,無論是哪種形式的轉換,Jackson > Gson > Json-lib。

?????Jackson的處理能力甚至高出Json-lib有10倍左右。

2、JSON-lib似乎已經停止更新,最新的版本也是基于JDK15,而Jackson的社區則較為活躍;

3、在測試性能的同時,又以人肉方式對這三個類庫轉換的正確性?進行了檢查?,三者均達100%正確?

4、JSON-lib在轉換諸如Date類型時較為累贅,如以下是兩者的轉換結果:

JSON-lib:

{"brithday":{"date":17,"day":2,"hours":9,"minutes":24,"month":7,"seconds":26,"time":1282008266398,"timezoneOffset":-480,"year":110}}

Jackson:

{"brithday":1282008123101}

5、JSON-lib依賴commons系列的包及ezmorph包共5個,而Jackson除自身的以外只依賴于commons-logging
6、Jackson提供完整基于節點的Tree Model,以及完整的OJM數據綁定功能。

Jackson使用示例:

創建為餓漢式單例模式?

Jackson用于轉換的核心類ObjectMapper無需每次都new一個object,官網上的一句話:can reuse, share globally

public?class?JacksonMapper{private?static?final?ObjectMapper?mapper?=?new?ObjectMapper();public?static?ObjectMapper?getObjectMapper()?{return?mapper;???} } //Use?of?Jackson,?convert?the?string?to?List ObjectMapper?om?=?JacksonMapper.getObjectMapper(); List<Map<String,?String>>?list?=?om.readValue(sb.toString(),?List.class);


轉載于:https://my.oschina.net/zzq911013/blog/287026

總結

以上是生活随笔為你收集整理的Jackson、JSON-lib、Gson性能对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。