Skip to content

Releases: async-profiler/async-profiler

Maintenance release

04 Sep 22:46
Compare
Choose a tag to compare

v1.8.1

Improvements

  • Possibility to specify application name instead of pid (contributed by @yuzawa-san)

Bug fixes

  • Fixed long attach time and slow class loading on JDK 8
  • UnsatisfiedLinkError during Java method profiling
  • Avoid reading /proc/kallsyms when --all-user is specified

Converters

11 Aug 21:47
Compare
Choose a tag to compare

v1.8

Features

  • Converters between different output formats:
    • JFR -> nflx (FlameScope)
    • Collapsed stacks -> HTML 5 Flame Graph

Improvements

  • profiler.sh no longer requires bash (contributed by @cfstras)
  • Fixed long attach time and slow class loading on JDK 8
  • Fixed deadlocks in wall-clock profiling mode
  • Per-thread reverse Flame Graph and Call Tree
  • ARM build now works with ARM and THUMB flavors of JDK

Changes

  • Release package is extracted into a separate folder

LBR call stack support

14 May 00:59
Compare
Choose a tag to compare

v1.7.1

Features

  • LBR call stack support (available since Haswell)

Improvements

  • --filter to profile only specified thread IDs in wall-clock mode
  • --safe-mode to disable selected stack recovery techniques

Method invocation profiling. Filters

26 Jan 23:12
Compare
Choose a tag to compare

v1.7

Features

  • Profile invocations of arbitrary Java methods
  • Filter stack traces by the given name pattern
  • Java API to filter monitored threads
  • --cstack/--no-cstack option

Improvements

  • Thread names and Java thread IDs in JFR output
  • Wall clock profiler distinguishes RUNNABLE vs. SLEEPING threads
  • Stable profiling interval in wall clock mode
  • C++ function names as events, e.g. -e VMThread::execute
  • check command to test event availability
  • Allow shading of AsyncProfiler API
  • Enable CPU profiling on WSL
  • Enable allocation profiling on Zing
  • Reduce the amount of unknown_Java samples

Usability and reliability improvements

02 Sep 00:20
Compare
Choose a tag to compare

v1.6

Features

  • Pause/resume profiling
  • Allocation profiling support for JDK 12, 13 (contributed by @rraptorr)

Improvements

  • Include all AsyncGetCallTrace failures in the profile
  • Parse symbols of JNI libraries loaded in runtime
  • The agent autodetects output format by the file extension
  • Output file name patterns: %p and %t
  • -g option to print method signatures
  • -j can increase the maximum Java stack depth
  • Allocaton sampling rate can be adjusted with -i
  • Improved reliability on macOS

Changes

  • -f file names are now relative to the current shell directory

Wall-clock and timer-based profiling

08 Jan 20:28
Compare
Choose a tag to compare

v1.5

Features

  • Wall-clock profiler: -e wall
  • -e itimer mode for systems that do not support perf_events
  • Native stack traces on macOS
  • Support for Zing runtime, except allocation profiling

Improvements

  • --all-user option to allow profiling with restricted
    perf_event_paranoid (contributed by @jpbempel)
  • -a option to annotate method names
  • Improved attach to containerized and chroot'ed JVMs
  • Native function profiling now accepts non-public symbols
  • Better mapping of Java thread names (contributed by @KirillTim)

Changes

  • Changed default profiling engine on macOS
  • Fixed the order of stack frames in JFR format

Tree view and JFR compatible output

24 Jun 01:57
Compare
Choose a tag to compare

v1.4

Features

  • Interactive Call tree and Backtrace tree in HTML format (contributed by @rpulle)
  • Experimental support for Java Flight Recorder (JFR) compatible output

Improvements

  • Added units: ms, us, s and multipliers: K, M, G for interval argument
  • API and command-line option -v for profiler version
  • Allow profiling containerized JVMs on older kernels

Changes

  • Default CPU sampling interval reduced to 10 ms
  • Changed the text format of flat profile

Native functions profiling and JDK 10 support

24 Jun 02:03
Compare
Choose a tag to compare

v1.3

Features

  • Profiling of native functions, e.g. malloc

Improvements

  • JDK 9, 10, 11 support for heap profiling with accurate stack traces
  • root can now profile Java processes of any user
  • -j option for limiting Java stack depth

Built-in SVG generator

05 Mar 18:04
Compare
Choose a tag to compare

v1.2

Features

  • Produce SVG files out of the box; flamegraph.pl is no longer needed
  • Profile ReentrantLock contention
  • Java API

Improvements

  • Allocation and Lock profiler now works on JDK 7, too
  • Faster dumping of results

Changes

  • total counter of allocation profiler now measures heap pressure (like JMC)

Perf Events support

02 Dec 23:16
Compare
Choose a tag to compare

v1.1

Features

  • Linux Perf Events profiling: CPU cycles, cache misses, branch misses, page faults, context switches etc.
  • Kernel tracepoints support
  • Contended monitor (aka intrinsic lock) profiling
  • Individual thread profiles

Improvements

  • Profiler can engage at JVM start and automatically dump results on exit
  • list command-line option to list supported events
  • Automatically find target process ID with jps tool
  • An option to include counter value in collapsed output
  • Friendly class names in allocation profile
  • Split allocations in new TLAB vs. outside TLAB

Changes

  • Replaced -m modes with -e events
  • Interval changed from int to long