各種 Java 的序列化庫的性能比較測試結(jié)果
本次測試專注于 cyclefree 數(shù)據(jù)結(jié)構(gòu)的編碼和解碼。一些序列化程序支持循環(huán)檢測/對象共享,一些序列化程序兩種模型都支持,一些序列化程序包括了元數(shù)據(jù),一些則沒有,有的是跨平臺的,有的只支持特定語言,有些是基于文本,有些是二進制。(請查閱 ToolBehavior)
其他測試數(shù)據(jù)會產(chǎn)生不同的結(jié)果。不過,這些結(jié)果給出了評估這些庫的原材料。
java version “1.7.0_51”
Java™ SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot™ 64-Bit Server VM (build 24.51-b03, mixed mode)
簡單/通用:
不通過類的具體優(yōu)化而序列化 POJO 樹。序列化類預(yù)先已知。循環(huán)檢測/目標共享檢測還沒有完成。
檢驗正確性...
[done]
預(yù)熱...java-built-in hessian kryo fast-serialization jboss-serialization jboss-marshalling-river protostuff msgpack-databind json/jackson/databind json/jackson/db-afterburner json/protostuff-runtime json/google-gson/databind json/svenson-databind json/flexjson/databind json/fastjson/databind smile/jackson/databind smile/jackson/db-afterburner bson/jackson/databind xml/xstream+c xml/jackson/databind-aalto
[done]
默認:
序列化任意對象圖,循環(huán)檢測功能。無法預(yù)先知道序列化的類。只有支持全目標圖形序列的序列化程序包括在內(nèi)。
檢驗正確性...
[done]
預(yù)熱… java-built-in-serializer hessian kryo-serializer fast-serialization-shared jboss-serialization
[done]
簡單/具體:
僅用代碼序列化特定的類,或者有特殊的類。
檢驗正確性...
[done]
預(yù)熱...kryo-opt wobly wobly-compact protobuf protostuff protobuf/protostuff thrift thrift-compact avro json/json-lib-databind json/jsonij-jpath
[done]
手動:
僅通過手寫序列化代碼來序列化具體的類。
檢驗正確性...
[done]
預(yù)熱… java-manual kryo-manual protostuff-manual avro-generic json/jackson/manual json/protostuff-manual json/google-gson/manual json/json.simple/manual json/json-smart/manual/tree json/org.json/manual/tree json/argo-manual/tree smile/jackson/manual bson/mongodb xml/woodstox-manual xml/aalto-manual xml/xstream+c-woodstox xml/xstream+c-aalto xml/xstream+c-fastinfo xml/javolution xml/fastinfo-manual
[done]