Самым важным аспектом является минимизация скорости распределения. Всякий раз, когда объект выделяется, он нуждается в GC позже. Теперь, конечно, если объект small или shortlived , он будет заколочен в молодом поколении (при условии, что GC является поколением). Крупные объекты, как правило, попадают прямо на арендованную арену. Но лучше вообще не собирать деньги.
Кроме того, если вы можете бросать вещи в стек, вы будете испытывать гораздо меньшее давление на сборщик мусора. Вы могли бы попытаться играть с GC-опциями, но я думаю, что вам гораздо лучше помочь с профилировщиком распределения в руке, чтобы вы могли найти места, которые создают проблемы.
Нужно остерегаться веса стандартных библиотек и фреймворков. Вы оберните пару объектов, и они заполнятся довольно быстро. Помните, что когда что-то идет в кучу GC, оно обычно использует немного больше места для GC-бухгалтерии. Таким образом, ваши 1000 указателей, выделенных по отдельности, намного больше, чем массив / вектор тех же указателей, поскольку последние могут совместно использовать GC-бухгалтерию. С другой стороны, последний, вероятно, останется в живых гораздо дольше.