2015-03-30 34 views
2

所以在很多基準,我已經看到了,protobuf網來遙遙領先的BinaryFormatter的: - http://theburningmonk.com/2011/08/performance-test-binaryformatter-vs-protobuf-net/ - https://code.google.com/p/protobuf-net/wiki/Performance的原因,而不是使用protobuf網的BinaryFormatter

這使我這樣一個問題:爲什麼你會如果protobuf-net可用,是否想使用BinaryFormatter?

我已經閱讀了關於BinaryFormatter存儲類型元數據的一些信息,這是protobuf不能做的。你能給我一個例子,我想要存儲類型元數據嗎?

+3

我見過這個問題;我只是沒有意識到我想選擇BinaryFormatter的任何場景; p – 2015-04-01 15:58:33

+1

我看了一下基準測試,看起來很不公平,而且贊成BinaryFormatter,因爲protobuf沒有實現本地引用映射,protobuffer存儲參考數據相同的數據事件。 – jeorfevre 2015-04-18 12:18:01

+1

抱歉無法完成評論(通過最大延遲)。該測試正在序列化「100,000個相同的實例」,因此BinaryFormatter存儲1個數據和100K引用。在他們的另一面,protobuf存儲了數據的副本。這個測試並不代表protobuf的力量,因爲我們永遠不需要發送100K相同的記錄,我會稱這個測試爲「不公平」。 :) – jeorfevre 2015-04-18 12:27:22

回答

1

我目前正在努力與protobuf網來序列化Dictionary<string, object>類型的對象。我讀過的是這是不可能的,所以我想這是一個更喜歡BinaryFormatter的場景。

+0

Dictionary <>使用ISerializable自定義方法來存儲其內容和比較器。你要麼使用BinaryFormatter要麼使用這個(它快10倍):https://github.com/aumcode/nfx/blob/master/Source/NFX/Serialization/Slim/SlimSerializer.cs(我是作者) – 2015-06-09 01:20:59

相關問題