2MB ブロックで ~280MB のデータを FileStream に書き込んでいます。
1 台のマシンでは、これは 8 秒未満で完了します。私のマシン(同様の仕様、SSDなど)で、なぜ40秒以上かかり、進行中の一時停止なのかをデバッグしようとしています。
ハードウェア デバイスから返されたときにデータを書き込みますが、ストリームで Write を呼び出すと返されるまでに時間がかかる場合があることがわかりました。すべての書き込みの間にフラッシュを呼び出しています:
Stopwatch stopwatch = Stopwatch.StartNew();
_stream.Write(buffer, 0, buffer.Length);
stopwatch.Stop();
Console.WriteLine("_stream.Write() " + stopwatch.ElapsedMilliseconds + "ms");
_stream.Flush();
出力:
_stream.Write() 2ms
_stream.Write() 2ms
_stream.Write() 2ms
... snip
_stream.Write() 2ms
_stream.Write() 2ms
_stream.Write() 2ms
_stream.Write() 2ms
_stream.Write() 23233ms <- not expecting this
_stream.Write() 2ms
_stream.Write() 2ms
_stream.Write() 0ms
... snip
_stream.Write() 2ms
_stream.Write() 2ms
_stream.Write() 15852ms <- or this
_stream.Write() 2ms
_stream.Write() 2ms
_stream.Write() 2ms
... snip
_stream.Write() 2ms
_stream.Write() 25ms
_stream.Write() 2ms
_stream.Write() 2ms
これは私が期待するものではありません