За последние несколько дней я получил некоторую информацию о распределителях памяти, отличных от стандартного malloc()
. Есть некоторые реализации, которые кажутся намного лучше, чем malloc()
для приложений с множеством потоков. Например, кажется, что tcmalloc
и ptmalloc
имеют лучшую производительность.
У меня есть приложение на C ++, которое использует операторы malloc
и new
во многих местах. Я думал, что замена их чем-то вроде ptmalloc
может улучшить его производительность. Но мне интересно, как действует оператор new
при использовании в приложении C ++, работающем в Linux? Использует ли он стандартное поведение malloc
или что-то еще?
Как лучше всего заменить new
распределитель памяти на старый в коде? Есть ли способ переопределить поведение или new
и malloc
или мне нужно заменить все вызовы на них по одному?