Speaker details

Ivan Ugliansky


Worked at Excelsior since 2011, was one of the Excelsior JET developers (full JVM implementation based on optimizing AOT compilation). Basically, worked with runtime: GC, class loading, concurrency maintenance, profiling and so on. In 2019 joined Huawei and now works on compilers, JVMs and new programming languages in Huawei Research Center in Novosibirsk. Also, he is co-founder and co-lead of JUGNsk — an official Java Users Group in Novosibirsk, helps to organize meetups about Java and JVM. In his free time teaches C/C++ courses at Novosibirsk State University.

Walking dead objects, or GC is always right

Java Language

Automatic memory management is said to be one of the greatest features of Java as well as other managed programming languages. At the same time, JVM specification says almost nothing about how exactly it should work! As a result, there are so many various algorithms and strategies of Garbage Collection, each with its own benefits, trade-offs and implementation details. For example, different GCs answer the question "when should we reclaim an object that is considered to be garbage?" differently. It is not so obvious, and every answer can dramatically change the behavior of an application. In this talk we will find out why GC store some dead objects on the heap, how this can influence your code and how to protect an application from zombie apocalypse.

Scheduled on Friday from 12:00 to 12:50 in Room 7

Garbage Collection