有时您比 Windows 更了解哪些文件稍后会被重新使用。假设您有 8GB 内存,并且您在 I/O 密集型应用程序中每小时使用同一个 1GB 文件(如果文件已缓存,则需要 1 秒才能完成,否则需要 1 分钟)。现在您要处理其他 16GB 不会重复使用的数据。自然,经常使用的 1GB 文件将被推出缓存。如果可以告诉 Windows 将该 1GB 文件保留在内存中,那将是有益的。(更好的是,如果有人能告诉 Windows 不要缓存这 16GB 的数据就太好了,但我对这能否实现并不乐观。)
网络共享中的文件的情况更糟:即使有可用内存,Windows 也会从缓存中删除文件。如果您立即重新使用文件,它仍将保留在缓存中;但如果您关闭文件并等待 30 秒,缓存就会消失,系统将需要从远程服务器重新获取文件。对我来说,这非常明显,因为我使用的是 3 Mbps 的网络链接,并且处理的文件大小约为 10 MB。
最简单的将文件保存在缓存中的方法是不断读取文件。还有其他更好的方法吗?您是否知道有任何可以执行此操作的程序?
(如果这可以在 Linux 下轻松完成,也请告诉我。)
答案1
我想到两件事。
- 将文件复制到虚拟硬盘首次使用前,将其移回文件,使用完毕后。(QSoft 的 RamDisk建议 12 美元这里)
- 买快SSD 驱动器看看是否有帮助(足够)
答案2
对于某些类型来说这是可能的,例如 dll:
Windows 缓存了一组常用的 dll,这些是“已知 DLL”。为了保持 dll 文件被缓存,它只需成为该集合的一部分即可。