快速且内存高效的 c++ 平面哈希表/映射/集合
高性能、内存高效的 C++ 开放地址平面哈希表 emhash 是一系列高性能、仅包含头部信息的哈希表实现,旨在实现最大的性能和内存效率。通过创新的冲突解决策略和缓存优化技术,emhash 在各种基准测试中表现出卓越的性能。
EMH_HIGH_LOAD 宏(可用于 hash_table5/7/8)或 max_load_factor()(emhash6/7)将负载系数设置为 0.999sizeof(key) % 8 != sizeof(value) % 8 时,可节省大量内存hash_map 相比 hash_map 节省了 1/3 的内存shrink_to_fit() 释放未使用的内存| 特性 | 描述 |
|---|---|
insert_unique |
直接插入,无查找(性能提升) |
try_get |
返回指向值的指针,如果键不存在则为 nullptr |
try_set |
如果键存在,则设置值,如果不存在则不做任何操作(emhash5/8, emilib1/2/3) |
set_get |
更新值并返回旧值(emhash5/8, emilib1/2/3) |
_erase |
删除操作返回 void(更快) |
| LRU 模式 | 使用 EMH_LRU_SET 启用 LRU 缓存优化 |
暂无开放 Issues,或尚未同步最近议题。