Спикер: Углянский Иван, JVM инженер из Excelsior @ Huawei
О чем лекция: о внутренностях GC, но не о том, «как», а о том, «когда», что особенно важно пользователям weak references. Речь не о конкретном алгоритме GC, а о требованиях стандарта и о том, как он фактически воплощен.
Автоматическое управление памятью — одна из основных особенностей Java и других managed языков. При этом в спецификации про GC написано очень мало: как именно собирать мусор каждой конкретной реализации JVM, предлагается решать самостоятельно. В результате для сборки мусора существует огромное количество стратегий и степеней свободы. Например, когда именно GC должен приходить за мертвым объектом? Ответ не так очевиден, а любое решение может повлиять на ход исполнения пользовательской программы.
В докладе обсудим, зачем коллектору оставлять мертвые объекты в памяти, как это сказывается на вашем приложении и как выжить во время нашествия ходячих объектов-мертвецов.