我正在运行一些测试,以查看我的日志记录将如何执行,而不是File.AppendAllText
我会先写入内存流然后复制到文件。所以,只是为了看看我这样做的内存操作有多快..
private void button1_Click(object sender, EventArgs e)
{
using (var memFile = new System.IO.MemoryStream())
{
using (var bw = new System.IO.BinaryWriter(memFile))
{
for (int i = 0; i < Int32.MaxValue; i++)
{
bw.Write(i.ToString() + Environment.NewLine);
}
bw.Flush();
}
memFile.CopyTo(new System.IO.FileStream(System.IO.Path.Combine("C", "memWriteWithBinaryTest.log"), System.IO.FileMode.OpenOrCreate));
}
}
i
到达时,即使我的Process Explorer说我有大约 700Mb 的可用内存,我也25413324
得到了一个?Exception of type 'System.OutOfMemoryException' was thrown.
这是屏幕截图(以防万一)
进程浏览器
这是winform
编辑:为了在堆上创建更多对象,我重写了bw.write
这个
bw.Write(i);