我試圖使用System.IO.Packaging.Package和PackagePart將大量二進制數據序列化爲自定義文件格式。我試圖使用BinaryFormatter將一組詳細的醫療成像數據集輸出到文件/包中的不同部分。C#中System.IO.Packaging速度問題
我可以使用BinaryFormatter將所有數據直接輸出到FileStream(根本不使用System.IO.Packaging),並且我的樣本數據在大約12秒內輸出約140meg的數據。雖然這個解決方案相當快速且不錯,但我更喜歡支持壓縮的更靈活的格式,並且能夠以靈活的格式存儲更多數據。
通過_packagePart.GetStream()獲取一個流,並嘗試通過BinaryFormatter將數據序列化到這個流中,這會導致我的數據序列化需要大約5到10分鐘的時間(並且壓縮關閉)。
System.IO.Packaging.Package類有些黑盒子,我沒有太多的經驗。任何知道爲什麼將數據流式傳輸到這種格式與直接二進制格式化器到文件在性能上會有很大差異?我知道我的對象可以相對快速地序列化爲二進制格式。爲什麼這麼長時間寫?
也許發佈一些示例代碼 – Simon 2010-04-22 02:54:06