Safepoint — let the whole world wait

Day 2 /  / Track 4  /  RU /

To perform some operations (not just garbage collection) the JVM needs to completely stop application threads. Why does a virtual machine need stop-the-world pauses? How does a Java program stop and what side effects does this lead to? What safepoint related optimizations does HotSpot JVM do? How to find the reason for long stops? What developers should remember to avoid pauses?

Andrey Pangin

Leading software engineer at Odnoklassniki, specializes in the development of high-loaded Java servers. Due to the experience he got while working at Oracle in HotSpot team, knows JVM like the back of his hand and is fond of sharing his expertise during various conferences. Authors one-nio and async-profiler projects, leads in the #JVM category on Stack Overflow.