Fast Java Profiling with Scheduling-Aware Stack Fragment Sampling and Asynchronous Analysis

  • Peter Hofer (Speaker)

Activity: Talk or presentationContributed talkunknown

Description

Sampling is a popular approach to profiling because it typically has only a small impact on performance and does not modify the profiled application. Common sampling profilers collect data about an application by pausing the application threads, walking the stacks to create stack traces, and then adding the traces to their profile. Waiting threads are often sampled as well, even when they have not been active since their last sample. Sampling profilers for Java commonly rely on safepoints, which are locations in the Java code where a thread can pause to be sampled. However, restricting profiling to these locations affects the accuracy of the profile, and the safepoint mechanism itself imposes significant pause times on the application. We present stack fragment sampling, a new approach for Java applications that minimizes pause times and eliminates redundant samples altogether. It interrupts an application thread only to copy a fragment of its stack to a buffer and then immediately resumes its execution. Retrieving and decoding the stack fragments happens asynchronously and can run on a separate core or on another processor. Our approach integrates with the operating system to only take samples of threads while they are running in order to avoid redundant samples. We demonstrate that our approach has a very small impact on performance even at high sampling rates. Furthermore, we validate our approach by comparing our profiles to those from a profiler using safepoints as well as to a VM-internal profiler that does not use safepoints. The results show that the profiles agree.
Period25 Sept 2014
Event titlePPPJ 2014: International Conference on Principles and Practice of Programming in Java
Event typeConference
LocationPolandShow on map

Fields of science

  • 102 Computer Sciences
  • 102022 Software development
  • 102025 Distributed systems

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)