如何查找文件是不是在 Windows 的文件系统缓存中?

Posted

技术标签:

【中文标题】如何查找文件是不是在 Windows 的文件系统缓存中?【英文标题】:How to find if file is in file system cache in Windows?如何查找文件是否在 Windows 的文件系统缓存中? 【发布时间】:2012-11-24 18:02:36 【问题描述】:

我猜NTFSWindows 的文件系统)有一些缓存。假设我有一个经常访问的文件(只读)。如何检查此文件是否在文件系统缓存中?我可以增加文件系统缓存大小吗?

【问题讨论】:

自己从未尝试过,但您的部分问题已得到回答here。 呃,没有。本文指的是非文件数据数据结构的缓存,而不是文件数据本身。 【参考方案1】:

检查

http://blogs.technet.com/b/askperf/archive/2010/08/13/introduction-to-the-new-sysinternals-tool-rammap.aspx

您可以使用RamMap,它可以让您专门了解当前系统如何缓存文件。

另外提一下,缓存不是基于文件,而是基于块/页。

【讨论】:

【参考方案2】:

用户空间无法直接检测文件是否已被缓存(部分或全部)。在多线程/多处理环境中,一旦您收到此信息,它就会立即过时。

Windows 中的缓存没有“限制”可以调整(尽管我的数据是 Windows 7 和之前的版本)。缓存管理器只是使用内存管理器将数据放入内存并在需要回收物理内存(例如,应用程序的需求)时获得回调。内存管理器在文件缓存与进程的内存需求之间进行权衡。

【讨论】:

以上是关于如何查找文件是不是在 Windows 的文件系统缓存中?的主要内容,如果未能解决你的问题,请参考以下文章

Linux下查找大文件以及目录

如何查找系统中的文件:ntoskrnl.exe

Linux如何查找大文件或目录总结

在 Windows 上查找文件的 MIME 类型

Linux find指令(文件查找)

windows系统查找文件-通配符的使用