我想使用 FILE_FLAG_RANDOM_ACCESS 访问一个文件。但是当通过 FILE_FLAG_RANDOM_ACCESS 访问大文件时,巨大的内存消耗可能会导致系统性能下降。有没有办法限制特定文件句柄的缓存大小?
最佳答案
Windows 不提供设置最大缓存大小的方法,但您自己实现起来相对容易。使用 FILE_FLAG_NO_BUFFERING
打开文件并使用 LRU 列表实现您自己的缓存以确定何时驱逐 block 。请注意,从 Windows Server 2016 开始,FILE_FLAG_RANDOM_ACCESS
在缓存中保留数据的积极性降低,因此这不再是一个问题。但是,Microsoft 仍然建议避免使用此标志。
进一步阅读:Troubleshoot Cache and Memory Manager Performance Issues
关于c++ - 使用具有缓存大小限制的 FILE_FLAG_RANDOM_ACCESS 访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24298878/