我有一个专为64位系统设计的C ++应用程序。目前我正在研究packfile系统的Windows实现。 packfiles本身包含几千个单独压缩的文件。访问模式应该是在不同时间访问不同文件的多个线程,但这些单独的文件(几乎)总是按顺序访问。这些文件应该在程序的持续时间内保持内存映射,偶尔访问,但通常是短暂的突发,一次访问许多文件。
在这种情况下,最大化Windows能否执行预读优化的最佳方法是什么?
我对单个文件映射的关注是,访问不是真正顺序的,而是基本上完全随机的本地顺序。我看到两个选项,但我不知道哪个更好,或者是否有其他选择:
我的直觉是#1会让Windows做得最好,但我担心会分配大量的文件句柄。想法?