一種高效的序列化方式——MessagePack
阿新 • • 發佈:2018-11-12
最近在弄一些資料分析方面的內容,發現很多時候資料瓶頸在模組之間的資料序列化和反序列化上了,原來專案中用的是Json,找了一圈發現Json.net在Json序列化庫中已經是效能的佼佼者了,便準備從序列化方式入手了,最後選擇了MessagePack的這個序列化的庫。
MessagePack是一種的序列化格式。這種格式小巧快速,多個小整數會壓縮成一個位元組,通常短字串壓縮後只比原來長度增加1個位元組。
MessagePack對程式語言支援也比較廣泛,在C#中比較有名的兩個庫是:
- 官方版本: msgpack-cli
-
社群版本: MessagePack-CSharp
其中社群版本有更好的效能,園子裡有篇文章對它做了比較詳細的介紹。
如下是各種序列化方式的效能比較圖,MessagePack在各項效能指標上都是佔據著很大優勢的,比起Json.net來還有數倍的效能提升的。
關於Messagepack的原理,本文這裡並不做介紹,感興趣的朋友可以看下如下參考文章: