To make JVM profiler win_able

Day 1 /  / Track 3  /  RU

JetBrains added support for async-profiler for Mac and Linux a couple of years ago. They started using it and realized that they needed an async-profiler on Windows. On Linux and Mac async-profiler uses the POSIX signaling mechanism and native stack unwinding. The team needed to figure out exactly how AsyncGetCallTraces works and compare its internal structure with JFR. And if it turns out that they are pleased with the AsyncGetCallTraces work, then they need to learn how to emulate the signal mechanism and spin up the native stacks. You also need to solve various OS-specific problems that arise along the way.

The talk will be interesting for people who like native and low-level development and all sorts of OS-level stuff. Listeners will learn that you can solve any problem if you choose a low enough level of abstraction.

Download presentation


Kirill Timofeev

Graduated from the Computer Technologies Department at ITMO. Worked at Yandex. For the last three years, he has been working at JetBrains to support profiling tools in IntelliJ IDEA.

Invited Experts

Andrey Pangin

Principal 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.