特定的地图插入代码需要时间 - 开销

时间:2015-04-07 11:40:29

标签: c++ dictionary overhead

我在项目中使用地图插入和查找操作。但只有特定的地图插入需要更多的时间来执行。代码在

之下
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。

  1. 修改第二个回调函数只会导致开销。不是第一次回调。

0 个答案:

没有答案