我正在将2MB块中的〜280MB数据写入FileStream。FileStream.Write在SSD上长时间阻塞
在一台机器上,这在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
这不是我所期望的
事件查看器中的任何错误?对我来说似乎是硬件问题。 – MiMo 2013-02-08 14:10:08
我将不得不第二次MiMo的评论。听起来像是一个硬件问题。 – JosephHirn 2013-02-08 14:15:45
完整的文件系统缓存很容易解释这一点。购买更多的RAM。 – 2013-02-08 14:43:21