Releases: SAP/async-profiler
Releases · SAP/async-profiler
Maintenance release
v1.8.3
Improvements
- libasyncProfiler.dylib symlink on macOS
Bug fixes
- Fixed possible deadlock on non-HotSpot JVMs
- Gracefully stop profiler when terminating JVM
- Fixed GetStackTrace problem after RedefineClasses
Maintenance release
v1.8.2
Improvements
- AArch64 build is now provided out of the box
- Compatibility with JDK 15 and JDK 16
Bug fixes
- More careful native stack walking in wall-clock mode
resume
command is not compatible with JFR format- Wrong allocation sizes on JDK 8u262
Maintenance release
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
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
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
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
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
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
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
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