Performance Testing Java Applications

Aug 16, 2022

Every so often, you’ll read a performance benchmark (of a Java or other application), with bold claims for how well X performs compared to Y. Testing the performance of your Java application is an artform rather than engineering and is a minefield of misconceptions, misunderstanding, and misinformation. In this session, we will review the basics and give you concrete steps to build a robust performance testbed for your application. We will be looking at this from a real-world server-side application point of view, specifically for Java apps. We’ll review common problems and how to avoid them. We’ll cover these topics while building up a performance test and running it live:

Define your goals: SLA, latency, throughput, stability
Test env vs. Production env for testing
The impact of GC on Java app performance
Tools for setting up, driving load, and getting perf test results
Testing application infrastructures like Kafka, Spark, and Cassandra
Operating system settings, JVM settings, memory sizing, and CPU sizing
Analyzing perf test results and finding bottlenecks that are both apparent and not obvious