我有一个int和string的无序映射,通过引用将值插入到其中。我想从map中删除一些元素并减少所使用的malloc内存,但是我看不到内存的减少。是否可以使用擦除减少malloc内存?擦除后会重新哈希帮助吗?
typedef typename std::unordered_set<N> ChangeObjSet;
ChangeObjSet _changeObjSet;
template <class N>
void MdmNameCacheImplMIWithStripEscape<N>::insertChangedStatus(const N &obj)
{
_changeObjSet.insert(obj);
}
typename ChangeObjSet::iterator it = _changeObjSet.begin();
for(;it != _changeObjSet.end();)
{
auto s = it;
it++;
_changeObjSet.erase(s);
}
由操作系统分配给您的进程的内存不一定与您当前正在使用的内存相同。为每个要删除的对象释放内存的效率极低。您可能看不到分配给进程的内存,直到它终止为止。