1. 程式人生 > >[.NET 開源] 高效能的 Swifter.MessagePack 已釋出,併發布新版本的 Swifter.Json 和 Swifter.Data。

[.NET 開源] 高效能的 Swifter.MessagePack 已釋出,併發布新版本的 Swifter.Json 和 Swifter.Data。

抱歉各位朋友,由於各種私事公事,本應該在 19 年底釋出的 Swifter.MessagePack 庫延遲了這麼久才釋出,我深感抱歉。

MsgPack 簡介

MsgPack 一種非常輕巧的二進位制資料交換格式,巧妙的設計讓它相比其他二進位制資料格式更可讀,並且有著不錯的壓縮率和邏輯效能,是目前相當火熱的資料交換格式。

Swifter.MessagePack 遵循 MsgPack 新的規範實現;相比 .NET 其他 MsgPack 序列化庫,Swifter.MessagePack 有著更好的效能,生成的內容更緊湊合理且更簡單易用。

Nuget:Swifter.MessagePack,Swifter.Json,Swifter.Data

GitHub:Swifter.MessagePack,Swifter.Json

如果您想使用 Swifter 庫,請在 Nuget 上安裝/下載最新版本,如需單檔案版本,請自行生成/合併。

 

簡單使用 Swifter.MessagePack

MessagePackFormatter 類內部還有數十個方法過載,包括靜態和例項方法,總有一些適合您;這些方法都是執行緒安全的。

更多使用方法請參考早期關於 Swifter.Json 的文章,GitHub 或 Wiki;學習交流進 Swifter 的 QQ 群:133630914(新群,歡迎加入)。

 

Swifter 框架的特性

(1) Swifter 可以執行在 .NET Framework 2.0+, .NET Core 2.0+, .NET Standard 2.0+, MONO JIT, MONO AOT, Xamarin.Android, Xamarin.iOS, Unity JIT 等平臺/執行時上,Unity IL2CPP 執行時由於沒有我們測試環境,不知可否正常執行,更多資訊請看下面的 AOT 說明。

(2) Swifter 有著深層的抽象封裝,這雖然帶來了一些效能和記憶體的損耗,但也獲得了更高的擴充套件性;Swifter.Json/Swifter.MessagePack/Swifter.Data 的可公用的程式碼非常多,這使得在 Swifter 上實現一個新的序列化庫只需要編寫少量程式碼即可實現,這是其他框架難實現的。

(3) 雖然 Swifter 有很多介面和抽象程式設計,但是 Swifter 並沒有因此比其他的框架慢或記憶體佔用大,反比它們更快和更小記憶體佔用;這是因為 Swifter 從來都是使用更好演算法和邏輯來獲取效能,而不是使用更直接的程式碼獲取直接的效能。

(4) 作為類庫開發者,我們深知每個人開發和測試的側重點都與他人不一樣,自己找出自己的問題太難,所以 Swifter.Json 和 Swifter.MessagePack 除了我們自己的測試單元之外, 還 "偷" 了 Newtonsoft, Neuecc 和 Spanjson 的 5000+ 個測試單元( 去除了 Newtonsoft 的部分測試單元);現已測試通過 4200+ 個,不通過 800+ 個是我們認為可以允許或是更加合理的行為。(不勞而獲的測試單元確實用著很爽,但事實是我們"搬"這些測試單元用了 3 天