在这里,我想知道通常认为什么更快。
在序列化数据时直接写入流
using (var fs = new FileStream(file, FileMode.Create, FileAccess.Write, FileShare.None))
{
TypeSerializer.SerializeToStream(data, fs);
}
与之前缓冲序列化数据并将所有内容一次写入流
string buffer = TypeSerializer.SerializeToString(data);
using (StreamWriter sw = new StreamWriter(file, false))
{
sw.Write(buffer);
}
我的示例在这里使用 ServiceStack.Text,因为我对其开发人员的想法特别感兴趣,但我想这也适用于所有其他序列化方法。
我也知道 FileStream 使用内部缓冲区,但我不太确定在序列化时是否可以信任它,无论出于何种不太可能的原因,它比磁盘 IO 慢 :)