使用内存映射文件读取打包文件的最快方法? 我有一个C++应用程序,它只为64位系统设计。目前,我正在研究打包文件系统的Windows实现。packfile本身将数千个单独的压缩文件合并到其中。访问模式应该是多个线程在不同的时间访问不同的文件,但是这些单独的文件(几乎)总是按顺序访问的。在程序运行期间,这些文件将保持内存映射,偶尔访问,但通常是在短时间内突发访问,同时访问多个文件
在这种情况下,最大化Windows执行预读优化能力的最佳方法是什么 我对单个文件映射的关注是,访问不是真正的顺序,而是基本上完全随机的,具有局部顺序性。我看到两个选项,但我不知道哪一个更好,或者是否更喜欢另一个选项:使用内存映射文件读取打包文件的最快方法? 我有一个C++应用程序,它只为64位系统设计。目前,我正在研究打包文件系统的Windows实现。packfile本身将数千个单独的压缩文件合并到其中。访问模式应该是多个线程在不同的时间访问不同的文件,但是这些单独的文件(几乎)总是按顺序访问的。在程序运行期间,这些文件将保持内存映射,偶尔访问,但通常是在短时间内突发访问,同时访问多个文件,c++,windows,winapi,file-io,memory-mapped-files,C++,Windows,Winapi,File Io,Memory Mapped Files,在这种情况下,最大化Windows执行预读优化能力的最佳方法是什么 我对单个文件映射的关注是,访问不是真正的顺序,而是基本上完全随机的,具有局部顺序性。我看到两个选项,但我不知道哪一个更好,或者是否更喜欢另一个选项: 为我希望内存映射的每个子文件创建packfile的新文件句柄,然后为每个子文件创建FileMapping和MapViewOfFile 为packfile创建单个文件句柄,然后为每个子文件创建唯一的文件映射 我的直觉是#1会让Windows做得最好,但我担心会分配成吨的文件句柄。想法