Здравствуйте, Sharov, Вы писали:
S>Вы это откуда можете знать, если инлайн метода вполне может поменять паттерн использования памяти?
Либо я чего-то не понимаю, либо в дотнете такого быть не может. Профиль стека в нашем контексте неважен — во-первых, потому что у нас нет рекурсий, во-вторых, потому что у нас типичная глубина стека незначительна. Это ж же джавовский спринг с его километровыми стектрейсами

А профиль использования динамической памяти от инлайна никак не меняется. У нас более-менее те же объекты конструируются более-менее в те же моменты.
На поведение памяти в дотнете влияет время удержания ссылки — т.е. для того, чтобы затянуть время жизни объекта, надо ссылку на него сохранить в каком-то долгоживущем объекте. То есть — поменять логику кода, а не его структуру. Инлайн на такое неспособен.
Есть некоторый нюанс с заменой foreach на linq — там можно внезапно увеличить количество выделений на ровном месте, и, скажем, спровоцировать более частую сборку нулевого поколения.
Опять же — нам нагрузка на garbage collector непринципиальна, мы ж не видеоигра, где рулит плавность FPS. На общее потребление Gen0 не влияет.