0

次の 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まずメモリにデータが保存され、次にハード ドライブにフラッシュされますよね?

4

1 に答える 1

0

StreamWriter は既にバッファリングされているため、バッファを追加すると効率が低下します。

于 2012-06-22T21:11:05.270 に答える