我正在从事具有以下情况的 C/C++ 混合项目。
我需要进行迭代以逐个遍历文件中的非常小的块(也很少是较大的块)。理想情况下,我应该只连续阅读一次。我认为在这种情况下将一大块读入缓冲区并稍后使用它是一个更好的解决方案,而不是在我需要时立即读取它们中的每一个。
问题是,如何平衡缓存大小?有没有我可以利用的知名算法/库?
更新:(更改标题)
谢谢你们的回复,我知道我们的盒子里有不同级别的缓存机制。但就我而言,这还不够。
我想我在这里错过了一些重要的事情。实际上,我正在现有框架上构建一个应用程序,在该框架中,频繁地向引擎请求读取对我来说成本太高。(是的,我相信引擎确实利用了操作系统和磁盘级别的缓存。)我正在尝试做的确实是构建一个应用程序级别的预取系统。
想法?