硬盘读取文件的速度超过了声明的速度。通过FileStream读取

时间:2018-10-16 09:16:56

标签: c# .net performance filestream diskcache

我正在通过FileStream(.NET 3.5,控制台应用程序)读取文件800 Mb。硬盘具有SATA 3总线(600 Mb / s),但我不知道:为什么读取文件的时间只有486 ms。

当我尝试异步读取时,情况变得更糟-大约需要100-150毫秒。

文件未缓存-仅当文件实际加载到内存中时,我才能看到RAM消耗增加800 Mb。

请帮帮我,这件事对我来说很奇怪

1 个答案:

答案 0 :(得分:2)

读取文件时,操作系统还将其复制到文件系统缓存中。如果自上次读取以来未对文件进行修改并且仍在缓存中,则读取操作完全由RAM提供。这就是为什么一旦读取文件后就可以完全绕过磁盘以进行后续读取的原因。

您也不会将缓存视为内存消耗。缓存是 free 内存的全部,任务管理器还会指出:

enter image description here