我的工具是Linux、gcc和pthreads。当我的程序从多个线程调用new/delete,并且在堆上存在争用时,会创建“arena”(请参考以下链接http://www.bozemanpass.com/info/linux/malloc/Linux_Heap_Contention.html)。我的程序运行24x7,即使在2周后仍会偶尔创建arena。我认为最终可能会有与线程一样多的arena。ps(1)显示内存消耗令人担忧,但我怀疑只有其中很小一部分实际上被映射。
空的arena的“开销”是多少?(每个arena相比于如果所有分配都限制在传统堆中使用了多少更多的内存?)
是否有任何方法可以强制提前创建n个arena?是否有任何方法可以强制销毁空的arena?