Profiling and Tracing Support for Java Applications

Research output: Contribution to conferencePaperpeer-review

  • Authors:
  • Andrew Nisbet
  • Nuno Miguel Nobre
  • Graham Riley
  • Mikel Luján


We demonstrate the feasibility of undertaking performance evaluations for JVMs using:(1) a hybrid JVM/OStool, such as async-profiler, (2) OS centric profiling and tracing tools based on Linux perf, and (3) the Extended Berkeley Packet Filter Tracing (eBPF) framework where we demonstrate the rationale behind the standard offwaketime tool, for analysing the causes of blocking latencies, and our own eBPF-based tool bcc-java, that relates changes in microarchitecture performance counter values to the execution of individual JVM and application threads at low overhead. The relative execution time overheads of the performance tools are illustrated for the DaCapo-bach-9.12 benchmarks with OpenJDK9 on an Intel Xeon E5-2690, running Ubuntu 16.04. Whereas sampling based tools can have up to 25% slowdown using 4kHz frequency, our tool bcc-java has a geometric mean of less than 5%. Only for the avrora benchmark, bcc-java has a significant overhead (37%) due to an unusually high number of futex system calls. Finally, we provide a discussion on the recommended approaches to solve specific performance use-case scenarios

Bibliographical metadata

Original languageEnglish
Number of pages8
Publication statusPublished - 11 Apr 2019
Event10th ACM/SPEC International Conference on Performance Engineering (ICPE 2019) - Mumbai, India, Mumbai, India
Event duration: 7 Apr 201911 Apr 2019


Conference10th ACM/SPEC International Conference on Performance Engineering (ICPE 2019)
Abbreviated titleICPE19
Internet address