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