Krakow, Poland, 31 May - 2 June 2023
Ever asked yourself why you cannot utilize all the cores you got? There is also a NullPointerException that comes up once a week and nobody knows why? Parallel programming is hard, not only in Java, and this talk wants to explain why and increase the overall awareness for hidden problems.
Most people get parallel programming and shared state management wrong. Java is a more classic language that gives you nails and a hammer, not absolute solutions. But, most people don't even know, has set a strong standard for the parallel behavior - the Java Memory Model. On one hand, this leaves room for mistakes, but also allows one to leverage the underlying platform more efficiently.
This talk provides insights into how Java deals with concurrency, why many developer assumptions are wrong, and what optimizations are applied to code to make it run fast while still obeying the limits of the spec. It is all about understanding the hardware, despite using a high-level language.
Some examples will also motivate to leave concurrent programming to the experts, leverage libraries instead of trying an implementation, and to apply caution when reviewing code.
The internet is full of micro benchmarks explaining the world to beginners. Everyone able to use JMH is trying to explain the world, but only a few do it right. Most benchmarks are either entirely wrong or draw the wrong conclusions.
Benchmarking is an art, not because it should look good, but because it has to be correct. Drawing the wrong conclusions can ruin a project, or at least cause a lot of effort without any results. Not to mention, it can spread a message that others will follow blindly for a long time.
This talk introduces you to the art of microbenchmarking, the approach, the do's and don'ts, the questions you have to ask, and how to draw the right conclusions. At the end of the talk, you might realize that you don't need microbenchmarks at all.
We will use JMH, but start with something more naive.
Ticket prices will go up in...
You missed out!