1
我的程序运行时的显著部分正在致力于为std :: __细节:: _ Map_base,我不知道那是什么引用。什么是性病:: __细节:: _ Map_base在PERF报告?
我周围中搜索互联网上的位,这似乎是某种形式的结构,但我不明白它是如何占用的时间,更何况它的近五分之一。我应该寻找什么来缩短这个时间?
我的程序运行时的显著部分正在致力于为std :: __细节:: _ Map_base,我不知道那是什么引用。什么是性病:: __细节:: _ Map_base在PERF报告?
我周围中搜索互联网上的位,这似乎是某种形式的结构,但我不明白它是如何占用的时间,更何况它的近五分之一。我应该寻找什么来缩短这个时间?
我闻到这里
的EECS 281项目作为参考,当我是这个班的IA,我得到了很多关于这个问题的。这只是意味着你花费了大量的时间在地图类型的内部方法上。尝试并减少昂贵的副本和重复的查找操作。如果你是遍地访问地图再次如下面的代码
if (m[key].something) {
use(m[key]);
cout << m[key];
}
尝试,将其更改为
auto& value = m[key];
if (value.something) {
use(value);
cout << value;
}
这将帮助你从3个昂贵的查找操作去只是1.你可以想像当你在一个循环中访问地图很多次时,这会如何有用。
而且看看Can the use of C++11's 'auto' improve performance?,并确保你不会做这样的错误。
EECS 281肯定,你是dopest。谢谢,这真的很有帮助! –