golang對象序列化和反序列化

模擬測試1,000, 000條數據 每條10個字節  也就是10M不到的 數據(高度結構化的數據)
過程
1.對象序列化爲 byte

2.byte反序爲對象json

3.gzip壓縮byte數組

測試語言go
測試方案: raw byte,json ,bson, msgpack (protostuff須要先作對象配置文件,比較麻煩,一般認爲和msgpack性能至關 )
結果:msgpack 勝出
性能


大小
gzip壓縮後大小
對象到byte耗時
byte到對象耗時
raw 10000000
6573252(65%) 未測試
未測試
json
47515988 7919511 (17%) 3248ms 5280ms
bson
49888910 9506965 (19%)
3863ms 6235ms
msgpack
29934223 7448484 2046ms 3113ms


raw data: 1000000
raw data gzip compress: 6573252 //gzip壓縮後大小

start: 1000000
Marshal cost: 3248  //json 序列化耗時
json string: 47515988  
json byte: 47515988  //二進制數組大小
Unmarshal cost: 5280  //json 反序列化耗時
test data: {1 100 0.9405091}
json gzip compress: 7919511 //gzip壓縮後大小

start
Marshal cost: 3863
bson byte: 49888910
Unmarshal cost: 6235
test data: {1 100 0.9405091}
bson gzip compress: 9506965


start: 1000000
Marshal cost: 2046
msgpack: 29934223
Unmarshal cost: 3113
test data: {1 100 0.9405091}
msgpack gzip compress: 7448484測試

相關文章
相關標籤/搜索