#共享内存 #哈希表 #进程间通信 #进程 #内存大小 #内存布局

shared_hashmap

用于进程间共享的哈希表,使用共享内存

3个版本

0.1.2 2023年10月3日
0.1.1 2023年6月24日
0.1.0 2023年6月24日

#344 in 内存管理

每月 25次下载

MIT/Apache

22KB
414 代码行

共享哈希表

Continuous integration

包含LRU淘汰的共享内存哈希表。

此crate提供了一种共享哈希表,其内存大小有限,可用于不同进程和线程之间。这是通过使用shared_memory crate和raw_sync-rs进行IPC互斥锁来实现的。

SharedMemoryHashMap在内部以优化的内存布局处理键和值的锁定和序列化。当前LRU实现是基本的,使用时间戳进行访问而不是有序键列表。为了LRU目的实现键列表是可能的,但需要更多的手动内存管理。

使用方法

use shared_memory_hashmap::SharedMemoryHashMap;

fn main() {
    let mut map = SharedMemoryHashMap::new(1024); // bytes.
    map.insert(1, "Hello");
    map.insert(2, "World");

    map2 = map.clone(); // map2 uses the same shared memory block as `map`.
    spawn(|| move {
        map2.insert(3, "Goodbye");
    });
}

依赖项

~2–27MB
~371K SLoC