幾種序列化協議(protobuf,xstream,jackjson,jdk,hessian)相關資料對比

FrankYou發表於2019-01-18

測試結果

序列化資料對比



 

bytes位元組數對比

具體的數字: 

  protobuf jackson xstream Serializable hessian2 hessian2壓縮 hessian1
序列化(單位ns) 1154 5421  92406  10189 26794 100766 29027
反序列化(單位ns) 1334 8743  117329  64027 37871 188432 37596
bytes 97 311  664  824 374 283 495

 

    1. protobuf 不管是處理時間上,還是空間佔用上都優於現有的其他序列化方式。記憶體暫用是java 序列化的1/9,時間也是差了一個數量級,一次操作在1us左右。缺點:就是物件結構體有限制,只適合於內部系統使用。

    2. json格式在空間佔用還是有一些優勢,是java序列化的1/2.6。序列化和反序列化處理時間上差不多,也就在5us。當然這次使用的jackson,如果使用普通的jsonlib可能沒有這樣好的效能,jsonlib估計跟java序列化差不多。

    3. xml相比於java序列化來說,空間佔用上有點優勢,但不明顯。處理時間上比java序列化多了一個數量級,在100us左右。

    4. 以前一種的java序列化,表現得有些失望

    5. hessian測試有點意外,具體序列化資料上還步入json。效能上也不如jackjson,輸得比較徹底。

    6. hessian使用壓縮,雖然在位元組上有20%以上的空間提升,但效能上差了4,5倍,典型的以時間換空間。總的來說還是google protobuf比較給力

 

 

 

相關文章