性能报告中的 std::__detail::_Map_base 是什么?
What is std::__detail::_Map_base in perf report?
我的程序运行时的很大一部分专用于 std::__detail::_Map_base,我不知道那指的是什么。
我在互联网上搜索了一下,它似乎是某种结构,但我看不出它是如何占用时间的,更不用说将近五分之一了。我应该寻找什么来减少这个时间?
我闻到了 EECS 281 项目的味道
当我是这个 class 的 IA 时,我收到了很多关于这个的问题。这只是意味着您的大量时间花在了地图类型的内部方法上。尝试减少昂贵的副本和重复的查找操作。如果你像下面的代码一样反复访问地图
if (m[key].something) {
use(m[key]);
cout << m[key];
}
尝试将其更改为
auto& value = m[key];
if (value.something) {
use(value);
cout << value;
}
这将帮助您从 3 次昂贵的查找操作减少到 1 次。您可以想象当您在循环中多次访问地图时这会有多大帮助。
也看看 并确保你没有犯这样的错误。
我的程序运行时的很大一部分专用于 std::__detail::_Map_base,我不知道那指的是什么。
我在互联网上搜索了一下,它似乎是某种结构,但我看不出它是如何占用时间的,更不用说将近五分之一了。我应该寻找什么来减少这个时间?
我闻到了 EECS 281 项目的味道
当我是这个 class 的 IA 时,我收到了很多关于这个的问题。这只是意味着您的大量时间花在了地图类型的内部方法上。尝试减少昂贵的副本和重复的查找操作。如果你像下面的代码一样反复访问地图
if (m[key].something) {
use(m[key]);
cout << m[key];
}
尝试将其更改为
auto& value = m[key];
if (value.something) {
use(value);
cout << value;
}
这将帮助您从 3 次昂贵的查找操作减少到 1 次。您可以想象当您在循环中多次访问地图时这会有多大帮助。
也看看