Часто нахожу в коде вызовы GC.Collect(), например при работе с графиков через GDI+.
В умных книжках пишут, что его никогда не нужно вызывать самому.
Собственно вопрос, а есть ли оправданные случаи, когда его нужно вызывать или это признак плохого когда?
Обычно не нужно. Иногда имеет смысл это делать:
После уничтожения большого количества объектов (например, закрытия формы с большим количеством элементов)
Когда приложение имеет четко выраженные периоды активности и простоя. Если принудительно вызвать сборку мусора в период простоя, уменьшится вероятность того, что она произойдет в период активности и затормозит выполнение кода.
Ссылки:
When to call GC.Collect()
When is it acceptable to call GC.Collect?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости