C# - XML反序列化与二进制反序列化与二进制+拒绝

ace*_*ace 3 c#

我正在将一个巨大的对象列表保存到文件中,然后将它们反序列化.生成的xml文件大小约为3 gigs.

我希望反序列化超快,所以我尝试了所有三种方法(xml,二进制,压缩)

显然,对压缩文件进行反序列化比使用XML文件要长得多.但是我看到二进制反序列化也比xml反序列化花费了更多的时间.这是正常的吗?难道xml和二进制文件几乎没有同时反序列化对象?

另外,您认为在文件大小和反序列化速度之间取得良好平衡的最佳选择是什么?

dtb*_*dtb 5

在.NET(BinaryFormatter,XmlSerializer,DataContractSerializer等)和protobuf附带的各种序列化方法之间的性能比较中,protobuf序列化器似乎领先于.NET附带的序列化器.由此产生的尺寸也会变小.如果protobuf格式是您的选项,我强烈建议您查看它.:-)

另一种选择:如果反序列化很慢,只需反序列化您真正需要的部分.创建一个索引文件,告诉您写入数据文件的对象的偏移量,这样您就可以以随机访问方式快速反序列化所需的对象.