我正在将 2MB 块中的约 280MB 数据写入 FileStream。
在一台机器上,这在 8 秒内完成。在我的机器上(具有类似的规格、SSD 等)我一直在尝试调试为什么它需要超过 40 秒并且它们是进度暂停。
我在从硬件设备返回数据时写入数据,但我发现有时,在流上调用 Write 可能需要很长时间才能返回。我在所有写入之间调用flush:
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
这不是我所期望的