【问题标题】:Keeping a tree/hashtable in RAM在 RAM 中保存树/哈希表
【发布时间】:2012-04-18 09:13:15
【问题描述】:

我必须为一个非常具体的用途编写一个简单的键值存储。此存储将与使用它的进程在同一内存空间中运行。

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

如何确保我的数据结构始终保存在 RAM 中?不交换,不分页,不缓存在其他地方,只在内存中。

【问题讨论】:

  • 把数据放到ramdisk?
  • 如果它是 POSIX 兼容的,标准方法是 mlock() 和朋友。
  • 类 UNIX 服务器,主要是 linux(即 POSIX 兼容)

标签: c memory-management data-structures


【解决方案1】:

如果您使用 Linux,请查看mlock()

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

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2010-10-23
    • 2011-05-06
    • 2015-07-18
    • 2021-11-21
    相关资源
    最近更新 更多