任何人都可以推荐一个使缓存/内存映射易于使用的库吗?
内存管理不是我项目的重点 - 这是我遇到的最后一分钟问题。因此,我正在寻找一个相对快速和简单的解决方案,而不是尝试学习缓存和内存映射的所有细节。
我正在寻找一个可以自动(在后台)从文件中写入和加载(缓存)的库。
理想情况下,我正在寻找以下内容:我可以简单地从“地图”访问/插入/删除,而无需从文件中保存/加载。如果 mystd::map
比较小,那么这是直接来自堆的。如果我map
变得很大,那么它是内存映射的,并且所有加载/保存(来自 mmap 文件)功能都是“在后台”执行的,所以我仍然只需要做 mymap.find(whatever)
等等。
(我的多处理器程序中的每个节点都会产生大量计算。当我尝试时all_gather
,程序崩溃。没有一个节点有足够的内存来保存所有节点组合的结果。因此,我正在寻找某种内存映射/缓存策略。)
这是在超级计算机上运行的(因此,OS = UNIX)。每个节点有 16GB 内存。有一个使用 eSATA 的暂存空间(用于写入临时文件的巨大空间)。(我设想将有效的内存映射到这个暂存空间作为解决方案)