FastJSON、Gson和Jackson性能對比


Java處理JSON數據有三個比較流行的類庫FastJSON、Gson和Jackson。本文將測試這三個類庫在JSON序列化和反序列化的方面表現,主要測試JSON序列化和反序列化的速度。為了防止由於內存導致測試結果出現偏差,測試中對JVM內存配置-Xmx4g -Xms4g。

JSON序列化(Object => JSON)

測試樣本數量為100000個,為了保證每個類庫在測試中都能處理同一個樣本,先把樣本Java對象保存在文件中。每個類庫測試3次,每次循環測試10遍,去掉最快速度和最慢速度,對剩下的8遍求平均值作為最終的速,取3次測試中最好的平均速度作為最終的測試數據。

類庫 樣本數量 執行次數 最長時間(毫秒) 最短時間(毫秒) 平均時間(毫秒)
FastJSON 100000 10 2291.22 1416.70 1454.93
Jackson 100000 10 1980.92 841.91 880.82
Gson 100000 10 2383.02 1469.08 1520.38

從測試數據可知,FastJSON和GsonJSON序列化的速度差不多,Jackson是最快的(用時Gson少大約600毫秒)。

JSON反序列化(JSON => Object)

測試樣本數量為100000個,為了保證每個類庫在測試中都能處理同一個樣本,先把樣本JSON對象保存在文件中。每個類庫測試3次,每次循環測試10遍,去掉最快速度和最慢速度,對剩下的8遍求平均值作為最終的速,取3次測試中最好的平均速度作為最終的測試數據。

類庫 樣本數量 執行次數 最長時間(毫秒) 最短時間(毫秒) 平均時間(毫秒)
FastJSON 100000 10 7942.31 6340.55 6526.41
Jackson 100000 10 7957.22 6623.85 6815.41
Gson 100000 10 8235.15 7006.06 7364.75

從測試數據可知,三個類庫在反序列化上性能比較接近,Gson稍微差一些。

總結

把Java對象JSON序列化,Jackson速度最快,在測試中比Gson快接近50%,FastJSON和Gson速度接近。 
把JSON反序列化成Java對象,FastJSON、Jackson速度接近,Gson速度稍慢,不過差距很小。

 


免責聲明!

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



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