我在项目中使用地图插入和查找操作。但只有特定的地图插入需要更多的时间来执行。代码在
之下std::map<ThreadID,int>::iterator itr1 = paddingMap->m_map.find(threadID);
if (itr1 != paddingMap->m_map.end())
itr1->second = paddingSize;
else
paddingMap->m_map.insert(pair<ThreadID,int>(threadID,paddingSize));
以上行是回调函数,将被多次调用。没有这些行需要150毫秒,使用这段代码需要2350毫秒。但是我在另一个没有花费更多开销的地方使用了相同的地图。
这是什么问题?
更新
1.我当前的例子只有一个帖子。 (因此地图中的对数只有一个。)
2.对中的值由两个回调函数修改,这两个函数是同步的。
3.通话次数约为80K。