An Introduction to Java Profiling Developer's Day 2008 Patrick Schlebusch
Overview An Introduction to Java Profiling An Introduction to Profiling YourKit Java Profiler Demonstration Additional information
What is Profiling? An Introduction to Profiling A development tool Dynamic performance analysis at runtime Implicit: Performance optimization based on analysis results
Development Process An Introduction to Profiling Problem analysis Design Development Testing Deployment Profiling
Goals An Introduction to Profiling Measuring and locating performance „bottlenecks“ Time-expensive functions or code parts Memory leaks and unnecessary memory allocation Deadlocks Useful interpretation of analysis results Software performance improvements Provide a detailed view on runtime behaviour
Problems An Introduction to Profiling Profiling produces overhead Interpretation of results can be difficult Identifying the „crucial“ parts of the software Recognizing potential for improvements
YourKit Java Profiler yourKit Java Profiler Commercial Java Profiling Tool Free tryout and Open Source licenses are available Used by Open Source projects such as various Apache projects, Azureus (many more..) Also used by Sun Microsystems, Google, SAP and at i5
Features yourKit Java Profiler On-Demand Profiling CPU, Memory and Concurrency profiling methods IDE Integration Profiling API Support of many different Java versions and OSs
CPU Profiling yourKit Java Profiler Sampling Low overhead Useful to find slow parts of the code Tracing Significant overhead Exact CPU time and method invokation counts CPU Usage graphs
Memory Profiling yourKit Java Profiler Memory telemetry graphs Heap / Non-Heap memory Class loading statistics Object count and size of classes Explicit garbage collection Object allocation recording
Thread Profiling yourKit Java Profiler Deadlock detection Synchronization analysis For which synchronized blocks or methods are Threads waiting? How long?
Demonstration
Additional Information YourKit Java Profiler www.yourkit.com Jprobe www.quest.com/jprobe/ JProfiler www.ej-technologies.com/products/jprofiler/ Various Open Source Profilers java-source.net/open-source/profilers
Thank you.

An Introduction To Java Profiling

  • 1.
    An Introduction toJava Profiling Developer's Day 2008 Patrick Schlebusch
  • 2.
    Overview An Introductionto Java Profiling An Introduction to Profiling YourKit Java Profiler Demonstration Additional information
  • 3.
    What is Profiling?An Introduction to Profiling A development tool Dynamic performance analysis at runtime Implicit: Performance optimization based on analysis results
  • 4.
    Development Process AnIntroduction to Profiling Problem analysis Design Development Testing Deployment Profiling
  • 5.
    Goals An Introductionto Profiling Measuring and locating performance „bottlenecks“ Time-expensive functions or code parts Memory leaks and unnecessary memory allocation Deadlocks Useful interpretation of analysis results Software performance improvements Provide a detailed view on runtime behaviour
  • 6.
    Problems An Introductionto Profiling Profiling produces overhead Interpretation of results can be difficult Identifying the „crucial“ parts of the software Recognizing potential for improvements
  • 7.
    YourKit Java ProfileryourKit Java Profiler Commercial Java Profiling Tool Free tryout and Open Source licenses are available Used by Open Source projects such as various Apache projects, Azureus (many more..) Also used by Sun Microsystems, Google, SAP and at i5
  • 8.
    Features yourKit JavaProfiler On-Demand Profiling CPU, Memory and Concurrency profiling methods IDE Integration Profiling API Support of many different Java versions and OSs
  • 9.
    CPU Profiling yourKitJava Profiler Sampling Low overhead Useful to find slow parts of the code Tracing Significant overhead Exact CPU time and method invokation counts CPU Usage graphs
  • 10.
    Memory Profiling yourKitJava Profiler Memory telemetry graphs Heap / Non-Heap memory Class loading statistics Object count and size of classes Explicit garbage collection Object allocation recording
  • 11.
    Thread Profiling yourKitJava Profiler Deadlock detection Synchronization analysis For which synchronized blocks or methods are Threads waiting? How long?
  • 12.
  • 13.
    Additional Information YourKitJava Profiler www.yourkit.com Jprobe www.quest.com/jprobe/ JProfiler www.ej-technologies.com/products/jprofiler/ Various Open Source Profilers java-source.net/open-source/profilers
  • 14.