c#Binaryformatter慢

时间:2015-11-19 08:16:06

标签: c# serialization binaryformatter

我已经使用BinaryFormatter将对象序列化/反序列化为字节数组。但它太慢了。这是我的代码:

IFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
formatter.Serialize(stream, this);
stream.Close();
byte[] currentByteArray = stream.ToArray();

是否有可能改进该代码,以加快速度。或者我的替代方案是什么?我已经看过像xmlserialization这样的其他几个序列化器,但我不想把它写成文件,就像一个字节数组一样。

提前致谢!

1 个答案:

答案 0 :(得分:2)

如果您在View -> Tool Windows语句中处理,就像家伙在评论中所说的那样,可以改进您的代码:

finally

但是,上面的代码并没有提高IFormatter formatter; MemoryStream stream; try { formatter = new BinaryFormatter(); stream = new MemoryStream(); formatter.Serialize(stream, this); byte[] currentByteArray = stream.ToArray(); } finally { if(stream!=null) stream.Close(); } 类的性能,因为它可以正常工作。但是你可以使用其他库。

.NET中最快且通用的序列化程序之一是Protobuf-net。例如:

BinaryFormatter