Java常用Json庫性能對比


Java對於處理JSON數據的序列化與反序列化目前常用的類庫有Gson、FastJSON、Jackson、jettison以及json-lib。在這里我們將對這些類庫在json序列化與反序列化方面的性能進行測試對比。

 

測試環境如下:

電腦:cpu為I3-4160,Win7 64位系統

編譯環境:jdk1.8.0_65,Myeclipse2014

各類庫版本:gson-2.6.2、fastjson-1.2.8、jackson -2.7.2、jettison-1.3.7(2014年后無更新)、json-lib-2.4(2012年后停止更新)

 

序列化的簡單對象:

publicclass User {

    intid;

    String name;

    intage;

    String address;

    //get、set

}

 

測試結果

 

序列化測試結果(Object->String),耗時單位均為ms

測試次數

類庫

100

1K

1W

10W

50W

100W

1000W

gson

8

25

63

230

680

1100

7790

fastjson

85

100

155

200

270

350

1850

jackson

35

48

80

150

255

360

2400

Json-lib

75

130

280

910

2725

4900

42500

jettison

70

85

110

210

400

590

4000

 

 

反序列化測試結果(String->Object),耗時單位均為ms

測試次數

類庫

100

1K

1W

10W

50W

100W

1000W

gson

9

21

60

195

570

950

7760

fastjson

85

105

150

225

370

545

3800

jackson

36

50

110

210

380

570

4460

Json-lib

86

185

405

1180

2950

4850

38300

jettison

6

20

50

230

460

710

4650

 

 

測試總結:

1、從測試結果可以看出gson在小於10w的數據量處理上,耗時相對較少,但是在數據越來越大的情況下耗時會明顯的增長。

2無論那種情況下,json-lib的耗時都是最多的,引用時還需要額外幾個依賴包,且目前已經停止了更新,所以不推薦使用。

3、jackson在各階段數據量都有很不錯的性能,而fastjson在數據量較多的情況下也有很好性能。

4、jettison性能不錯,但只提供json和其JSONObject對象相互轉化的方法,轉為自定義bean時需要再手動將JSONObject對象轉為需要的bean。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM