0

文件映射很棒,但是对于 32 位系统上相对较大的文件,应该忘记它并使用通用文件 i/o 实现所有内容。对于大型随机读写,系统缓存的效果几乎与文件映射一样好。但是对于围绕小文件区域的小操作,差异是巨大的,文件 i/o 比文件映射文件的等效操作慢十倍。后者主要是因为多次调用 SetFilePointer、ReadFile、WriteFile,甚至是几个小动作。

所以我想实现或使用某种缓存(或者可能是一些技巧),它应该对小型读/写有效,但我不需要一些复杂的缓存,因为对于大型操作,Windows 做得很好。有一些已知的方法吗?

谢谢

最大限度

4

1 回答 1

0

回答我自己的问题,让其他人在未来考虑类似的方法

看起来最好的是支持文件上的多重缓冲映射视图。在这种情况下,数组允许快速访问指向内存块(vies)的指针,如果基于请求的偏移量计算的指针有效,则应该只访问数据,如果不是 - 然后分配新视图,可选择保持视图总数到一定限度。我在阅读和写作方面都相对较快地实现了这一点,结果非常有希望

于 2011-01-14T16:29:58.550 回答