簡體   English   中英

最快的C#Serializer

[英]Quickest C# Serializer

我需要序列化OrderedDictionary,我需要它快速。 我不關心安全性或人類可讀性,我只需要以最快的方式將OrderedDictionary寫入文件並再次讀回來,只要序列化是一致的(同一組鍵值對,相同的文件內容) )。 BinaryFormatter是最佳選擇嗎?

您可以查看Google的序列化格式protobuf C#有幾種實現方式:

在線進行性能比較

BinaryFormatter幾乎可以肯定是內置序列化器中最快的,但是測量替代品和檢查並不是很難。

如果您正在尋找最快的方式,額外的編碼不是問題,您可以試試這個:

序列化:1。將字典數據寫入內存中的字節數組。 假設你的字典不是太大,這應該相對便宜,時間緊迫。 2.編寫一個包含#records的小標題,然后將該數組寫入文件。

反序列化:1。讀取#個項目並將其作為容量實例化您的OrderedDictionary。 2.將數據讀回數組,實例化每個對象,然后寫回OrderedDictionary。

我認為這不會比更傳統的方法快得多,但如果你試圖找出最后一點性能,也許值得一試。

更快捷的方法是編寫自己的IOrderedDictionary,熟悉對象,並以優化快速序列化的方式存儲它們(例如,可以快速抨擊磁盤的平緩沖區)。 也許更快的是使用一些索引文件格式(可能是SQLite?)並編寫一個緩存IOrderedDictionary適配器。 這可以讓您分攤反序列化成本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM