Здравствуйте, Glas, Вы писали:
G>Всем привет.
G>Недавно проходил несколько собеседований на .NET и частенько спрашивают про работу GC.
G>Стало интересно, как часто вы вмешиваетесь в его работу и по каким причинам?
У меня инф-ия немного устаревшая, .net 3.5-4.0, но особо в работу gc вмешаться нельзя. Можно высказать свои пожелания, типа gc.collect, gc.waitforpendingfinalizers и т.д., но вот не факт, что сборка начнется тут же после этих команд. Сборщик мусора штука недетерминированная, у него свои эвристики, поэтому как будет на самом деле -

. В последних версиях его сделали более ручным.
А так основные сценарии это когда начинается critical path в коде, или чувствительный к latency код, когда прерывания нашего кода крайне нежелательно (stop the world), перед этими участками кода и делают gc. У Клеппмана очень круто про это написано буквально на пару страниц.