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。謝謝,這真的很有幫助! –