Size: a a a

2021 November 07

SB

Sergey Benzenko in CODE BLOG / C#
Строго говоря, всякие LOH, POH и прочие OHи можно отдельным поколением считать.
Главное не сколько их, а в чём смысл введения поколений в принципе
источник

Q1

QWERTY 123 in CODE BLOG / C#
+
источник

EA

Egene Avdeev in CODE BLOG / C#
Бывает про структуры спрашивают и как с GC они работают
источник

GR

Get Root in CODE BLOG / C#
Что-то на умном) пока не понимаю)))
источник

Q1

QWERTY 123 in CODE BLOG / C#
Никак?
источник

EA

Egene Avdeev in CODE BLOG / C#
Ну не вся структура в стеке лежит
источник

Q1

QWERTY 123 in CODE BLOG / C#
Я честно не отвечу)
источник

SB

Sergey Benzenko in CODE BLOG / C#
https://t.me/NetDeveloperDiary/1017

Но это прям сильно детали.
Telegram
.NET Разработчик
День восемьсот тридцатый. #ЗаметкиНаПолях #GC
Топ Вопросов о Памяти в .NET. Продолжение 13-16
Начало 1-4
Продолжение 5-8
Продолжение 9-12

13. Что такое POH?
Куча закреплённых объектов (Pinned Object Heap) - это новый тип раздела управляемой кучи (помимо SOH и LOH), добавленный в .NET 5 и предназначенный для объектов, которые не будут перемещаться сборщиком мусора. Таким образом, POH никогда не уплотняется, что позволяет рассматривать все объекты в POH как «закреплённые» по умолчанию. Это полезно, потому что закрепление в SOH/LOH вводит некоторые накладные расходы и снижает гибкость сжатия памяти (что может привести к фрагментации). Наличие специального места для «закреплённых» объектов устраняет эту проблему.
Однако для аллокаций памяти был добавлен новый API, потому что теперь нам нужно указать, что мы выделяем объект, который необходимо немедленно закрепить. В настоящее время это можно сделать с помощью GC.AllocateUninitializedArray. То есть мы можем выделить там только массив типов, которые не являются ссылочными…
источник

GR

Get Root in CODE BLOG / C#
А как так то? Что-то в куче храниться? или где-то еще?
источник

GR

Get Root in CODE BLOG / C#
Спасибо большое, сейчас попытаюсь осознать))
источник

EA

Egene Avdeev in CODE BLOG / C#
Ну строки например, они же в кучу в любом случае попадут
источник

Q1

QWERTY 123 in CODE BLOG / C#
Таки придется подписаться
источник

Q1

QWERTY 123 in CODE BLOG / C#
А строка разве структура, а не неизменяемый объект?
источник

GR

Get Root in CODE BLOG / C#
аааа, а ведь точно, получается в структуре будет ссылка на место в куче?
источник

EA

Egene Avdeev in CODE BLOG / C#
Не, стоп. Структура... она в стеке, но строки в этой структуре будут в куче, а в стеке только ссылки.

И такие вопросы спрашивают бывает. Типа где строки в итоге и как все уберется
источник

EA

Egene Avdeev in CODE BLOG / C#
+
источник

Q1

QWERTY 123 in CODE BLOG / C#
Дык строка получается у нас объект, на который существует ссылка, пока струтура находится в стеке, а значит gc на нее пихуй
источник

GR

Get Root in CODE BLOG / C#
а сборщик мусора потом уберет бездомную строку из кучи по мере необходимости, когда структуру из стека кто-то почистит?
источник

Q1

QWERTY 123 in CODE BLOG / C#
И получается, что как бы gc к структурам никак не относится о_О
источник

Q1

QWERTY 123 in CODE BLOG / C#
Просто на объект может ссылаться не толькл структура но и другой объект и gc не важно что это будет, потому и возник вопрос
источник