2012-04-18 76 views
1

我必须编写一个简单的键值存储以供特定的使用。该存储将与使用它的进程在相同的内存空间中运行。在RAM中保留一棵树/哈希表

这家商店的一个要求是它保存在RAM中,并且必须尽可能快。我们还没有确定数据结构,但我们可能会使用LLRB-Tree

如何确保我的数据结构始终保存在RAM中?未交换,未分页,未在其他位置缓存,但仅在内存中缓存。

+0

将数据放在[ramdisk](http://en.wikipedia.org/wiki/RAM_disk)中? – Jasonw 2012-04-18 09:16:34

+0

哪个操作系统? – RedX 2012-04-18 09:18:06

+1

如果它符合POSIX标准,则标准方法是mlock()和朋友。 – tbert 2012-04-18 09:21:26

回答

2

如果你使用Linux,然后检查mlock()

m锁()和mlockall用于()分别锁定部分或全部呼叫 进程的虚拟地址空间到RAM中,防止 内存被分页到交换区域。 (man page)