4
我想优化一个以二进制格式序列化对象并将它们写入文件的类。我目前正在使用FileStream(在同步模式下,因为我的对象的大小)和一个BinaryWriter。这里是我的课是什么样子:将二进制数据写入C文件中的最高性能的方法#
public class MyClass
{
private readonly BinaryWriter m_binaryWriter;
private readonly Stream m_stream;
public MyClass()
{
// Leave FileStream in synchronous mode for performance issue (faster in sync mode)
FileStream fileStream = new FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite, maxSize, false);
m_stream = fileStream;
m_binaryWriter = new BinaryWriter(m_stream);
}
public void SerializeObject(IMySerializableObject serializableObject)
{
serializableObject.Serialize(m_binaryWriter);
m_stream.Flush();
}
}
这个代码中的探查运行表现出良好的性能,但如果有其他对象(或技术),我可以用它来改善这一类的性能我想知道。
“你*可能*想要坚持内置的序列化”:只是为了完整性 - 我常说的关于内置的二进制序列化程序('BinaryFormatter')关于*脆性*,特别是版本和实现细节。然而,它确实有最简单的工作方便。 – 2009-11-13 22:05:40
“但是,它确实需要您以不同的方式设计要序列化的类型。” - 这取决于您使用的实施方式... ;-p – 2009-11-13 22:09:54