Этот вопрос может звучать довольно элементарно, но это дискуссия, с которой я работал с другим разработчиком, с которым я работаю.
Я старался, чтобы стек выделял вещи, где мог, вместо кучи, выделяя их. Он разговаривал со мной и наблюдал за моим плечом и прокомментировал, что это не обязательно, потому что они одинаковы для исполнения.
У меня всегда создавалось впечатление, что рост стека был постоянным временем, а производительность распределения кучи зависела от текущей сложности кучи как для распределения (нахождения отверстия надлежащего размера), так и для выделения (свертывание отверстий для уменьшения фрагментация, так как многие стандартные реализации библиотеки требуют времени, чтобы сделать это во время удаления, если я не ошибаюсь).
Это поражает меня как нечто, что, вероятно, будет очень зависимым от компилятора. Для этого проекта, в частности, я использую компилятор Metrowerks для PPC. Проницательность в этой комбинации была бы наиболее полезной, но, в общем, для GCC и MSVС++, в чем дело? Является ли распределение кучи не столь высоким, как распределение стека? Разве нет разницы? Или это разница, так что минута становится бессмысленной микрооптимизацией.