Итак, я отслеживал то, что я считал чрезмерным сбором мусора во время моего кода. В конце концов я свел его к следующему коду, который показал то, что я видел:
object[] ret = new object[40000000];
for (int i = 0; i < 40000000; i++)
{
ret[i] = new object();
}
Во время выполнения этого цикла я видел десятки событий Garbage Collection Gen1. У кого-нибудь есть хорошее понимание того, почему это так? Какие объекты, на которые больше нет ссылок, он очищает при заполнении этого массива?
Вот изображение для справки: https://imgur.com/a/z3PBtou
Я не ожидал бы, что какой-либо GC будет происходить, пока я не потерял ссылку на объект, который я создал. Может быть, у меня сегодня мозговая смерть или есть какая-то фундаментальная концепция, по которой я скучаю, но мне это показалось любопытным.
Спасибо!