CPU缓存会加速写入/读取新文件吗?

时间:2013-12-13 06:01:49

标签: caching file-io io operating-system

假设CPU缓存大小为1MB。

  1. 我正在写一个大小为1 MB的新文件。 CPU缓存是否会通过逐块缓存然后刷新来加速写入?
  2. 现在文件大小大于CPU缓存大小的情况,比如2 MB。 CPU缓存会加速写入它,假设它可以缓存大小为4kb的文件块吗?
  3. 通过在第一次访问块之后缓存文件块,CPU缓存是否会加速读取大小为1GB的文件?

1 个答案:

答案 0 :(得分:0)

读取文件通常意味着程序调用{​​{1}}系统调用等,并在其自己的地址空间中获取所请求数据的私有,可修改副本。

有可能,但请求的数据不太可能被缓存在内存中,并且内存又被缓存在CPU上,并且副本实际上完全在缓存中发生。

更有可能的是,您对内存映射文件并从不同进程访问它。这将有助于利用缓存。写入共享内存可以实现进程间通信,即使内存由文件支持,该文件可能根本也可能根本不进入磁盘。缓存只存储最近使用过的数据,因此只有在您持续访问相同的1 MB(或者它保持多少)时它才有效。

CPU缓存无助于将数据写入(刷新)到磁盘。根据定义,磁盘比CPU慢,因此它本质上是最薄弱的环节。