You are viewing content from a past/completed QCon -

Presentation: Does Java Need Inline Types? What Project Valhalla Can Bring to Java

Track: Bare Knuckle Performance

Location: St James, 4th flr.

Duration: 11:50am - 12:40pm

Day of week: Tuesday

Slides: Download Slides

This presentation is now available to view on

Watch video with transcript

What You’ll Learn

  1. Hear about Project Valhalla, what it is and what it tries to achieve.
  2. Learn how Project Valhalla will impact the Java language and what it will change in the language in the near future.


Inline(value) types are the key part of experimental project Valhalla which should bring new abilities to Java language. It's a story not only about performance, it's also a  story about safety, abstraction,expressiveness, maintainability, etc. But on this session we will talk about performance. Which performance benefits inline types bring to Java and how we could exploit it.


What is the work you're doing today?


At Oracle, I'm on the Java performance team. I am not developing something new. I am not working on new features. We have joined different projects through time and are spending our effort just to be sure the performance is right. It could be small projects which take a week, just deal with some performance issues. And it could be a project done with our partners for years. We run benchmarks, we are checking performance, we are finding performance issues and we have recommendations for other teams. Right now, one project I'm working on for years is Project Valhalla. We work on providing better performance on modern hardware.

I decided to talk about Project Valhalla, a project which evolved over the years, and it is still not finished, but there are a lot of people who are interested in that. And I constantly get the question, why it takes so long? There are many things impacted by this project. I want to prepare people for what's coming next in Java. It will be a major change in the Java language. I am showing the benefits and some drawbacks to let people know what to expect in their future. We are going to make each feature preview available probably next year.

Speaker: Sergey Kuksenko

Java Performance Engineer @Oracle

Sergey Kuksenko is a Java Performance Engineer at Oracle working on a variety of Java and JVM performance enhancements. He joined Oracle in 2010 and OpenJDK/OracleJVM is the third JVM in his experience. He started working as Java Engineer in 1996 and as Java Performance Engineer in 2005. He has had a passion for exploring how Java works on modern hardware.

Find Sergey Kuksenko at

2020 Tracks

  • Monday, 8 March

  • Tuesday, 9 March

  • Wednesday, 10 March