Size: a a a

2021 February 11

A

Anatoly in pro.net
В том числе и от @EgorBo
источник

A

Anatoly in pro.net
Ilya Chernoudov
на счёт прибития апы - там даже финализаторы могут не вызваться
Ну вот - могут не вызваться, а могут вызваться и бум, у тебя креш невнятный
источник

NT

Nikita Tsukanov in pro.net
Anatoly
this на стеке и гц не должен собрать - большое заблуждение. Куча демок, когда объект уже собран, хотя метод ещё выполняется.
это если жид видит что к нему больше не обращаются
источник

NT

Nikita Tsukanov in pro.net
к объекту в смысле
источник

A

Anatoly in pro.net
Ilya Chernoudov
интересный кейс, ты уверен что всё именно так?
Ну мы фиксили ровно эти баги, так что да, уверен
источник

A

Anatoly in pro.net
Nikita Tsukanov
это если жид видит что к нему больше не обращаются
Да.
источник

IC

Ilya Chernoudov in pro.net
Nikita Tsukanov
это если жид видит что к нему больше не обращаются
жид!=гц
источник

NT

Nikita Tsukanov in pro.net
мне больше интересно как тогда вообще работает схема
var ptr = Marshal.GetFunctionPointerFromDelegate(...);
CallSomething(ptr);
источник

NT

Nikita Tsukanov in pro.net
в теории оно может делегат собрать сразу после выхода из GetFunctionPointerFromDelegate
источник

NT

Nikita Tsukanov in pro.net
не обращается же никто, хуле
источник

A

Anatoly in pro.net
Ilya Chernoudov
жид!=гц
и что? соберёт ГЦ, потому что жид видит, что далее по коду this не нужен и, значит, оно более не рут.
источник

IC

Ilya Chernoudov in pro.net
Anatoly
и что? соберёт ГЦ, потому что жид видит, что далее по коду this не нужен и, значит, оно более не рут.
мне кажется, это не так работает
источник

A

Anatoly in pro.net
Ilya Chernoudov
мне кажется, это не так работает
а как?
источник

IC

Ilya Chernoudov in pro.net
Anatoly
а как?
ГЦ работает более независимо от jit
источник

A

Anatoly in pro.net
A local variable in a method that is currently running is considered to be a GC root. The objects referenced by these variables can always be accessed immediately by the method they are declared in, and so they must be kept around. The lifetime of these roots can depend on the way the program was built. In debug builds, a local variable lasts for as long as the method is on the stack. In release builds, the JIT is able to look at the program structure to work out the last point within the execution that a variable can be used by the method and will discard it when it is no longer required. This strategy isn’t always used and can be turned off, for example, by running the program in a debugger.
источник

NT

Nikita Tsukanov in pro.net
гц от жита получает информацию
источник

NT

Nikita Tsukanov in pro.net
что рут а что не рут
источник

A

Anatoly in pro.net
странно, пишут, что именно так работает.
источник

IC

Ilya Chernoudov in pro.net
Anatoly
странно, пишут, что именно так работает.
не вижу тут упоминания jit
источник

NT

Nikita Tsukanov in pro.net
глаза открой
источник