http://blog.csdn.net/accountwcx/article/details/50252657
fastjson, jackson, gson
https://github.com/alibaba/fastjson
http://wiki.fasterxml.com/JacksonHome
https://github.com/google/gson
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速度稍慢,不過差距很小。
