Performance Testing Java Applications

Track: Java Platform
Abstract
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 infrastructure 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
Pratik Patel
Pratik Patel is a Java Champion, developer advocate at Azul Systems and has written 3 books on programming (Java, Cloud and OSS). An all around software and hardware nerd with experience in the healthcare, telecom, financial services, and startup sectors. He's also a co-organizer of the Atlanta Java User Group and North Atlanta JavaScript meetup, conference chairperson for Devnexus, frequent speaker at tech events, and master builder of nachos.