Size: a a a

2020 January 17

RB

Roman Bukin in pro.net
EgorBo
Слишком вербознл
ты там можешь подсмотреть как nib'ы доставать из векторов на sse
источник

RB

Roman Bukin in pro.net
для avx всё сильно проще
источник

DB

Dmitry Babushkin in pro.net
Коллеги, у нас finalizeQueue же никак не зависит от итераций GC?
Если в системе дофига памяти и GC спит, объекты из неё будут вычищаться?
источник

VK

Vladislav Khapin in pro.net
на серверном гц нет вроде
источник

VK

Vladislav Khapin in pro.net
там на первом гц они в очередь ставятся а потом на следующем только уберутся кмк
источник

DB

Dmitry Babushkin in pro.net
О.О
То есть нужно периодически дёргать GC руками?
источник

A

Anatoly in pro.net
поток финализаторов отдельный же
источник

A

Anatoly in pro.net
т.е. если объект был собран и помещён в очередь финализации, то рано или поздно (без гарантий) до него доберутся
источник

A

Anatoly in pro.net
поэтому нельзя закладываться на финализаторы.
источник

A

Anatoly in pro.net
Их вызов не гарантируется
источник

s

semptra in pro.net
Dmitry Babushkin
О.О
То есть нужно периодически дёргать GC руками?
There is a special runtime thread dedicated to calling Finalize methods. When the freachable queue is empty (which is usually the case), this thread sleeps. But when entries appear, this thread wakes, removes each entry from the queue, and calls each object's Finalize method. Because of this, you should not execute any code in a Finalize method that makes any assumption about the thread that's executing the code. For example, avoid accessing thread local storage in the Finalize method.
источник

s

semptra in pro.net
Гарантий никаких нет о том, когда будет произведена очиства этим самым freachable queue поэтому лучше всегда вообще избегать финализаторов и писать GC.SuppressFinalize(this) в диспоузе
источник

IC

Ilya Chernoudov in pro.net
Dmitry Babushkin
Коллеги, у нас finalizeQueue же никак не зависит от итераций GC?
Если в системе дофига памяти и GC спит, объекты из неё будут вычищаться?
что значит не зависит? Она редактируется GC
источник

IC

Ilya Chernoudov in pro.net
semptra
Гарантий никаких нет о том, когда будет произведена очиства этим самым freachable queue поэтому лучше всегда вообще избегать финализаторов и писать GC.SuppressFinalize(this) в диспоузе
там вроде this должно быть
источник

DB

Dmitry Babushkin in pro.net
semptra
There is a special runtime thread dedicated to calling Finalize methods. When the freachable queue is empty (which is usually the case), this thread sleeps. But when entries appear, this thread wakes, removes each entry from the queue, and calls each object's Finalize method. Because of this, you should not execute any code in a Finalize method that makes any assumption about the thread that's executing the code. For example, avoid accessing thread local storage in the Finalize method.
Но здесь же сказано обратное.
источник

s

semptra in pro.net
Dmitry Babushkin
Коллеги, у нас finalizeQueue же никак не зависит от итераций GC?
Если в системе дофига памяти и GC спит, объекты из неё будут вычищаться?
Ну и да, чтобы попасть в freachable queue объекту нужно сначала пройти обычный цикл сборщика мусора
источник

DB

Dmitry Babushkin in pro.net
И никакой зависимости от GC здесь нет.
источник

s

semptra in pro.net
Dmitry Babushkin
И никакой зависимости от GC здесь нет.
источник

s

semptra in pro.net
Dmitry Babushkin
И никакой зависимости от GC здесь нет.
The finalization queue is an internal data structure controlled by the garbage collector.
источник

A

Anatoly in pro.net
Dmitry Babushkin
И никакой зависимости от GC здесь нет.
если объект не собирается, он не попадёт в очередь финализатора, вот и всё. если очередь не пуста, отдельный тред будет её пахать независимо от гц.
источник