次の 2 つのコード サンプルは、パフォーマンスの点で同等ですか?
コード例 1:
var count = 9999999999;
using(var sw = new StreamWriter())
{
for(int i=0;i<count;i++)
{
var result = SomeRelativeLongOperation(i);
sw.WriteLine(result);
}
}
コード例 2:
var count = 9999999999;
var resultCollection = new ....
using(var sw = new StreamWriter())
{
for(int i=0;i<count;i++)
{
resultCollection.Add(SomeRelativeLongOperation(i));
if(resultCollection.Count%100==0)
{
WriteBlock(sw,resultCollection);
resultCollection.Clear();
}
}
}
Windows が IO 操作にメモリ バッファを使用することは知っています。メソッドを呼び出すと、StreamWriter.WriteLine
まずメモリにデータが保存され、次にハード ドライブにフラッシュされますよね?