You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Как они хранятся? Если строка интернирована, то она хранится как обычная строка в куче. Но ее надо как-то найти, чтобы проверить, что точно такая же строка уже существует. Куча иногда может достигать нескольких сотен гигабайт и поиск будет очень дорогим решением. Поэтому интернированные строки хранятся отдельно (предполагается, что их будет не так много).
У каждого домена при этом (системного или с базовым типом BaseDomain) есть внутренние таблицы, которая нам не доступны. Среди прочих существует Large Heap Handle Table. Существует два типа внутренних массивов, основанных на bucket-ах. Это массив статиков. Имеются ввиду статические члены классов, которые хранятся в массивах. У каждого домена есть ссылка на массив статиков. И дальше ячейками являются ссылки на значения. И еще одна - pinning handles. Это таблица запиненных элементов. Для тех случаев, когда вы пинуете объект в памяти, можете сделать это двумя путями. Первый - это через API, а второй - через ключевое слово fixed в C#. Это два совершенно разных механизма.
Не совсем понятен ход мысли, поскольку до этого момента всё более менее плавно шло, а потом довольно резкий переход к доменам. Создается ощущение. что по поводу строк еще не договорили, а к доменам еще не подвели.
The text was updated successfully, but these errors were encountered:
Я так понимаю, там должна быть картинка + резкий переход к рутам. Говорили про оптимизации, а потом сразу к рутам.
Это такая оптимизация, чтобы его во втором не ловить. И второе поколение для тех, кто решил пожить подольше и если GC туда пришел, то он там останется работать надолго.
Оранжевые кубики - это руты. Руты - это точки, относительно которых, если обходить граф, то гарантированно вы обойдете все объекты, которыми пользуется программа.
Опечатка "созранить "
мы хотим созранить стабильность во втором поколении и даём объектам еще один шанс быть собранными
Добрый вечер, Станислав.
https://github.com/sidristij/dotnetbook/blob/master/book/ru/Memory/01-02-MemoryManagement-Basics.md
Из главы книги по ссылке выше:
Не совсем понятен ход мысли, поскольку до этого момента всё более менее плавно шло, а потом довольно резкий переход к доменам. Создается ощущение. что по поводу строк еще не договорили, а к доменам еще не подвели.
The text was updated successfully, but these errors were encountered: