2012-04-18 78 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)