Java performance is an issue of interest for all Java application developers since making an application fast is as important as making it functional. An application is typically profiled to find out performance bottlenecks. There are many tools that can be used for profiling.
For this session, I would be using Yourkit profiler. I will explain the difference between tracing, sampling and call counting profiling and when to use what. I will talk about how to understand the performance numbers in each type of profiling. I will cover some of the common scenarios that is easily detectable in Yourkit profiling that could hinder performance.
Also memory management is challenging and can lead to all kinds of performance issues. I will also cover how to take a memory snapshot in Yourkit. I will explain how to read and analyse results from the memory snapshot and how to reach the code which is responsible for retaining maximum heap memory. I will also go through some of the memory wasting patterns like duplicate objects, sparse arrays , possible leaks and other memory oddities.
All the topics mentioned above will be accompanied by live demos.