比较测试map、unodered_map、unordered_set性能效率,整型数值查找
2014-07-12 11:41
2341 查看
测试环境:
centos 6.5
gcc 4.4.3
使用boost库生成均匀分布的随机正整形数字。
1、分别创建三个数据集对象
typedef unsigned
int UINT32;
std::unordered_map<UINT32,UINT32> test_map1;
std::map<UINT32,UINT32> test_map2;
std::unordered_set<UINT32> test_set2;
2、创建1000 000个0~999999之间的随机数字
每次测试分别将完全相同的随即数字组,分别放入三个容器。
3、仅测试查找的时间。一样是查找1000 000次。用find函数。
结果如下。r后面的数字表示,随即查找命中的次数。
后三个数字分别是对应的查找时间,单位是ms。
r:95092
test_map1:146ms
test_set2: 153
test_map2:279
r:95213
134
137
276
r:95222
150
139
287
r:95227
134
136
280
r:95205
133
132
273
结果来说:
unodered_map、unordered_set不相上下
但是map性能略微差一些。
之前我做过样本数据小一点的测试,大约10000个数字,依然是map性能差一些。
根据本次测试,
我会优先选用unodered_map、unordered_set做测试。
centos 6.5
gcc 4.4.3
使用boost库生成均匀分布的随机正整形数字。
1、分别创建三个数据集对象
typedef unsigned
int UINT32;
std::unordered_map<UINT32,UINT32> test_map1;
std::map<UINT32,UINT32> test_map2;
std::unordered_set<UINT32> test_set2;
2、创建1000 000个0~999999之间的随机数字
每次测试分别将完全相同的随即数字组,分别放入三个容器。
3、仅测试查找的时间。一样是查找1000 000次。用find函数。
结果如下。r后面的数字表示,随即查找命中的次数。
后三个数字分别是对应的查找时间,单位是ms。
r:95092
test_map1:146ms
test_set2: 153
test_map2:279
r:95213
134
137
276
r:95222
150
139
287
r:95227
134
136
280
r:95205
133
132
273
结果来说:
unodered_map、unordered_set不相上下
但是map性能略微差一些。
之前我做过样本数据小一点的测试,大约10000个数字,依然是map性能差一些。
根据本次测试,
我会优先选用unodered_map、unordered_set做测试。
相关文章推荐
- unordered_map,unordered_set,map,set 插入查找耗时测试
- 判断List、Map、Set是否为空及效率比较
- 判断List、Map、Set是否为空及效率比较
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
- 判断List、Map、Set是否为空及效率比较
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
- btHashMap vs std::unodered_map ——两种hashmap的性能对比测试
- std::map std::unordered_map 性能测试
- 判断List、Map、Set是否为空及效率比较
- es6 Array Map Set 性能测试
- 如何为排序,查找,set,map提供自定义比较功能
- C++ Primer学习笔记(11)——(转)c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
- 关于Vector和Map查找效率的惊人的实际测试结果
- Java性能测试的困惑:switch和map的性能比较
- boost::unordered_map 和 std::map 的效率 与 内存比较
- boost:unordered_map和std::map的使用详解和性能比较
- 【ThinkingInJava】55、对set中的操作测试性能比较
- Map与List查找性能比较
- ES6 MAP,SET性能测试