Я понимаю, что сборка мусора выполняется, когда приложению не хватает места в управляемой куче. Когда это происходит? Какой максимальный объем памяти может занимать сборка .NET и как она определяется?