1

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

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

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

请帮帮我,这对我来说似乎很奇怪

4

1 回答 1

2

当您读取文件时,它也会被操作系统复制到文件系统缓存中。如果文件自上次读取后没有被修改并且它仍然被缓存,则读取完全从 RAM 提供。这就是为什么在读取一个文件后,您可以完全绕过磁盘进行后续读取。

您也不会将缓存视为内存消耗。缓存是整个可用内存,任务管理器也会指出:

在此处输入图像描述

于 2018-10-16T09:19:12.340 回答