Size: a a a

2021 November 30

В

Владислав in DotNetRuChat
И исходный объект по ссылке снесет
источник

L

Liza in DotNetRuChat
Залетит в каком смысле? Если она ссылается на условный MyClass то его объект туда залетит, реф на объект не залетит
источник

L

Liza in DotNetRuChat
Если на этот объект больше ничего не ссылается то нет проблемы
Если ссылается ещё что-то то не снесет
источник

В

Владислав in DotNetRuChat
То есть если кроме структуры ничего не ссылается, то то снесет?
источник

L

Liza in DotNetRuChat
Перезапишет только стек при выходе из скоупа, то есть структуру и рефы в ней лежащие
источник

L

Liza in DotNetRuChat
Ну да, в какой-то момент GC доберется до этой памяти
источник

В

Владислав in DotNetRuChat
Куда и как перезапишет?
источник

С

Слава in DotNetRuChat
Может вы дизассемблируете сборку и посмотрите?
источник

L

Liza in DotNetRuChat
В смысле как) поинтер сдвинется к месту где вызывающая функция имеет свой кусочек стека. Вся память что была в стеке выделена под функцию из которой ты вышел станет мусором
источник

L

Liza in DotNetRuChat
Когда ты зайдёшь в новую функцию весь этот мусор превратится в полезное место для переменных новой функции
источник

В

Владислав in DotNetRuChat
И получается, что если мы структуру не вернули по значению, то наше ссылочное свойство будет для GC помечено для удаления?
источник

L

Liza in DotNetRuChat
Я не уверена что это происходит в момент ретурна если честно
источник

L

Liza in DotNetRuChat
Я не знаю как конкретно гц сканит стек на наличие ссылок и в какой момент времени
источник

В

Владислав in DotNetRuChat
Но пойнтер сдвинулся уже
источник

В

Владислав in DotNetRuChat
Я потому и говорю, что он их не должен сканить
источник

L

Liza in DotNetRuChat
Ну он то сдвинулся, но цлр не обязательно при этом что-то делать. Он потом например может дохлую память сравнить с активными ссылками на стеке
источник

L

Liza in DotNetRuChat
И выяснить что используется а что нет
источник

L

Liza in DotNetRuChat
Это уже детали реализации гц
источник

В

Владислав in DotNetRuChat
Он ее должен переиспользовать
источник

В

Владислав in DotNetRuChat
Тогда в чем разница от хипа?
источник