Comprehensive C++ Hashmap Benchmarks (2022)
2 months ago
- #Benchmark
- #Performance
- #C++
- 基准测试评估了29种不同的C++哈希表实现,涵盖多种分配器和哈希函数,共计174种组合和1914项基准评估
- 关键测试包括:映射复制、元素插入与删除、随机插入访问、迭代遍历,以及针对整型和字符串的查找操作
- 不同实现间性能差异显著,部分实现在特定领域表现突出,如搜索速度、内存占用或插入/删除效率
- 作者自研的ankerl::unordered_dense::map被强调为全能型选手,具有快速的搜索和迭代性能
- Google的absl::flat_hash_map和absl::node_hash_map在大规模映射中表现优异,但对哈希质量敏感
- Boost的unordered_map在查找速度上较std::unordered_map有显著提升,但在插入、删除和复制操作上较慢
- 专用分配器(如PoolAllocator)可提升基于节点的容器的内存使用效率和性能
- 哈希质量对性能影响重大,std::hash和boost::hash因缺乏雪崩效应在整型处理上表现欠佳
- 测试环境采用隔离核心、禁用频率调节等控制措施,配合特定编译器标志确保结果一致性
- 最终结果以可排序筛选的详细表格呈现,方便用户根据特定性能指标进行查询