Здравствуйте, gandjustas, Вы писали:
G>Вообще-то в интернете информации полно о том как работает сборщик мусора в .NET и какие там оптимизации. Почитал бы уже давно, а не выдавал домыслы, услышанные от непонятно кого за чистую монету.
Я знаю, что полно, но ты сам что именно посоветуешь?
G>1) Никакого периодического процесса нет. Сборка мусора вызывается тогда когда памяти не хватает.
По такой логике, любая программа на .Net должна для начала выедать всю доступную память, чего на практике обычно не происходит.
G>3) Но для сборки мусора в младших поколениях требуется анализ объектов из старших, но статистика показала что обычно не более 5% долгоживущих объектов ссылаются на короткоживущие и используется механизм защищенных страниц чтобы сборщи мусора узнавал о записи ссылок из младшего поколения в старшее.
OK. Про использование защищённых страниц я не знал (разве что краем уха слышал).
G>4) Чтобы программа не тормозила не надо нарушать статистику, на основе которой построены алгоритмы GC, что с завидным упорством делают программисты C++ когда пишут на C#.
И в чём выражаются такие нарушения?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!