Я бы не назвал это умным, чтобы звонить GC.Collect()
"каждые несколько часов" или "когда использование ОЗУ становится высоким", но я бы назвал это умным, чтобы звонить, когда вы в состоянии иметь большеинформация, чем сборщик мусора, некоторые примеры
- Вы знаете, этот большой кусок оперативной памяти или эти многочисленные мелкие объекты, которые вы только что выделили , больше не будут использоваться, и вы находитесь в однопоточномокружение и (конечно) вы очистили все свои ссылки
- Вы знаете, что "разрыв ГК" повредит меньше сейчас, чем чуть позже
ГК оченьоптимизированный код и довольно умный, но он может работать только на имеющейся информации.