FHV-1613 Forgive me, for I have allocated | Devoxx

Forgive me, for I have allocated

Quickie

java Java SE

Room 1 - 4FinanceIT

Tuesday at 13:00 - 13:15

You probably know the mantra that allocation is cheap. It usually is true, but devil is in the details. In your use case object allocation may impact processor caches evicting important data; burn CPU on executing constructor code; impact rates of object promotion to old generation and most importantly increase frequency of stop the word young gen pauses.

This presentation is for you if you are working on a Java based services that need to handle more and more traffic. As number of transactions per second rises you might hit performance wall that are young generation gc stopping whole application for precious milliseconds.

This presentation focuses on optimising object creation rate when dealing with seemingly mundane tasks. I will show few examples of surprising places in JDK and other libraries where garbage is created. We will look into replacements for things such as inefficient and allocating XML, date and number parsers. We will investigate thread locals and object reuse patterns. Finally we will run benchmarks to find out impact of these techniques on performance.

Tomasz Kowalczewski Tomasz Kowalczewski

For more than five years I was working on a distributed airline system that processed thousands of transactions per second. Now I work at Codewise focusing on real time big data processing backend powering our SaaS for online marketers. Interested in high volume and low latency services I also help with implementation of microservices in our company. Out of this work comes my quest for more adequate tools, frameworks and libraries that do not break under just moderate load requiring lots of investment in basic infrastructure code.