我有一个应用程序需要创建许多小文件以获得最大性能(不到1%的文件可能会在以后读取),我想避免使用异步文件API来保持代码的简单性。写入的总文件大小无法预先确定,因此我认为要实现最高性能,我需要:
1.Windows利用所有未使用的RAM进行缓存(尤其是文件写入),而不考虑可靠性或其他问题。如果我有超过1GB的未使用的RAM并且我创建了100万个1KB文件,我希望Windows立即报告“DONE”,即使它还没有写入任何磁盘。
OR
2.由真实的磁盘文件系统支持的基于内存的文件系统。每当我写文件时,它应该首先在内存中写入所有内容,然后在后台更新磁盘上的文件系统。除非没有足够的可用内存,否则同步调用没有延迟。请注意,它与Windows上的tmpfs或RAM磁盘实现不同,因为它们需要固定数量的内存并在没有足够RAM时使用页面文件。
对于选项1,我测试了VHD文件 - 虽然在某些配置下它确实提供了高达50%的总性能增加,但它仍然会刷新到磁盘并导致写入不必要地等待。而且似乎我无法禁用日记功能或进一步调整写入缓存行为.....
对于选项2,我还发现了类似的东西.....这样的东西存在吗?