Насколько близко tcmalloc подходит к производительности распределения стека?

Я рассуждал, что если бы tcmalloc поддерживал свободный список для каждого потока, под которым динамические распределения были бы удовлетворены, тогда производительность tcmalloc в среднем случае должна быть очень близка к выделению стека (стоимость изменения размера пула амортизируется в течение многих операции).

Имеет ли это место на практике? Есть ли случаи вырождения, о которых я не думаю?

1 ответ

Распределение стека состоит из одной машинной инструкции - изменить указатель стека. Трудно понять, как любая другая схема может приблизиться к этой эффективности. И вы, как правило, используете распределение стека и динамическое распределение с помощью функций, похожих на malloc (которые, конечно, имеют накладные расходы на вызов функции) для различных целей, поэтому вопрос о том, что "быстрее", является своего рода спорным.

Другие вопросы по тегам