同时创建两个STL容器map的效率问题
2015-05-14 19:50
225 查看
本人遇到的主要问题是在创建两个map(十万大小以上)的时候效率总是很低,刚开始怀疑自己的算法有问题,搞了两天都没能搞定,在师兄的指导下终于定位到map本身的问题,以下是我的测试结果:
map<long,long> map1 map<long,long> map2 分别插入:1-size map
= n;
情况1:
map1.size = 3400; map2.size = 340000; 创建时间分别为: 125 235 (毫秒)
情况2:
map1.size = 340000; map2.size = 3400; 创建时间分别为: 391 0 (毫秒)
情况3:
map1.size = 340000; map2.size = 340000; 创建时间分别为: 1765 235 (毫秒)
总结以上的测试结果:
使用第一个map时,创建时间最长。 第二个map创建时间大大缩短时间。
如果是多个map又是怎样的呢??
map<long,long> map1 map<long,long> map2
map<long,long> map3 分别插入:1-size map
= n;
情况1:
map1.size = 340000 ; map2.size = 340000 ; map3.size = 340000 创建时间分别为:438 218 250
情况2:
map1.size = 3400 ; map2.size = 340000 ; map3.size = 340000 创建时间分别为:93 1094 235
情况3:
map1.size = 340000 ; map2.size = 3400 ; map3.size = 340000 创建时间分别为:234 0 250
因此:最后的结论时:当我们在创建使用map结构时:第一次创建最大的map时花费时间是最多的。
因此我就可以很开心的在不关注效率的过程中把最大的map给创建了,后面再使用map的时候就会很快了。
具体的原因也不知道是为什么,有道友知道的话可以告诉贫僧一生。感谢。。。
不得不说,map的这个特性促使我特想写下一篇日志来记录下测试的苦逼岁月,因此有了本人的处女博客。道友勿喷!!!!
map<long,long> map1 map<long,long> map2 分别插入:1-size map
= n;
情况1:
map1.size = 3400; map2.size = 340000; 创建时间分别为: 125 235 (毫秒)
情况2:
map1.size = 340000; map2.size = 3400; 创建时间分别为: 391 0 (毫秒)
情况3:
map1.size = 340000; map2.size = 340000; 创建时间分别为: 1765 235 (毫秒)
总结以上的测试结果:
使用第一个map时,创建时间最长。 第二个map创建时间大大缩短时间。
如果是多个map又是怎样的呢??
map<long,long> map1 map<long,long> map2
map<long,long> map3 分别插入:1-size map
= n;
情况1:
map1.size = 340000 ; map2.size = 340000 ; map3.size = 340000 创建时间分别为:438 218 250
情况2:
map1.size = 3400 ; map2.size = 340000 ; map3.size = 340000 创建时间分别为:93 1094 235
情况3:
map1.size = 340000 ; map2.size = 3400 ; map3.size = 340000 创建时间分别为:234 0 250
因此:最后的结论时:当我们在创建使用map结构时:第一次创建最大的map时花费时间是最多的。
因此我就可以很开心的在不关注效率的过程中把最大的map给创建了,后面再使用map的时候就会很快了。
具体的原因也不知道是为什么,有道友知道的话可以告诉贫僧一生。感谢。。。
不得不说,map的这个特性促使我特想写下一篇日志来记录下测试的苦逼岁月,因此有了本人的处女博客。道友勿喷!!!!
相关文章推荐
- 算法小记(二)写 C++ 中STL容器中map 和 vector 遇到的问题
- 关于Spring容器中定时器到时执行会出现两个线程同时执行的问题
- Unity3D笔记——解决Unity官方《Tanks》同时启动会创建两个服务器问题
- 微软STL,hash_map 的效率问题
- C++ STL学习笔记九 map映照容器
- tomcat同时部署两个项目的问题
- Java collection 集合 容器 效率问题
- android 同时点击两个按钮或其他控件均响应的问题
- STL关联式容器之映射表——map
- STL 笔记(二) 关联容器 map、set、multimap 和 multimap
- stl容器区别: vector list deque set map及底层实现
- STL2—关联容器map基础总结
- STL有4种联合容器(set,multiset, map, multimap)
- STL 容器效率的对比
- 【STL】关联容器 — map
- [置顶] 从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)
- C++中STL容器类型做函数不使用引用导致程序效率下降
- STL中map容器的一点点用法
- stl容器区别: vector list deque set map-底层实现