Моими инструментами являются Linux, gcc и pthreads. Когда моя программа вызывает new/delete из нескольких потоков и когда возникает конкуренция за кучу, создаются «арены» (см. следующую ссылку для справки http://www.bozemanpass.com/info/linux/malloc/Linux_Heap_Contention.html). Моя программа работает 24x7, и арены все еще иногда создаются через 2 недели. Я думаю, что в конечном итоге может быть столько же арен, сколько и потоков. ps(1) показывает тревожное потребление памяти, но я подозреваю, что на самом деле отображается только небольшая ее часть.
Каковы «накладные расходы» для пустой арены? (Насколько больше памяти используется на арену, чем если бы все выделение было ограничено традиционной кучей?)
Есть ли способ принудительно создать заранее n арен? Есть ли способ принудительно уничтожить пустые арены?