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