mirror of
https://github.com/async-profiler/async-profiler.git
synced 2026-05-13 10:33:45 +00:00
6.4 KiB
6.4 KiB
Changelog
[2.0-rc] - Release candidate
Features
- Profile multiple events together (cpu + alloc + lock)
- HTML 5 Flame Graphs: faster rendering, smaller size
- JFR v2 output format, compatible with FlightRecorder API
- JFR to Flame Graph converter
- Automatically turn profiling on/off at
--begin/--endfunctions - Time-to-safepoint profiling
Improvements
- Unlimited frame buffer. Removed
-boption and 64K stack traces limit - Additional JFR events: OS, CPU, and JVM information; CPU load
- Record bytecode indices / line numbers
- Native stack traces for Java events
- Improved CLI experience
- Better error handling; an option to log warnings/errors to a dedicated stream
- Reduced the amount of unknown stack traces
Changes
- Removed non-ASL code. No more CDDL license
[1.8.4] - 2021-02-24
Improvements
- Smaller and faster agent library
Bug fixes
- Fixed JDK 7 crash during wall-clock profiling
[1.8.3] - 2021-01-06
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
[1.8.2] - 2020-11-02
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
resumecommand is not compatible with JFR format- Wrong allocation sizes on JDK 8u262
[1.8.1] - 2020-09-05
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
UnsatisfiedLinkErrorduring Java method profiling- Avoid reading
/proc/kallsymswhen--all-useris specified
[1.8] - 2020-08-10
Features
- Converters between different output formats:
- JFR -> nflx (FlameScope)
- Collapsed stacks -> HTML 5 Flame Graph
Improvements
profiler.shno 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
[1.7.1] - 2020-05-14
Features
- LBR call stack support (available since Haswell)
Improvements
--filterto profile only specified thread IDs in wall-clock mode--safe-modeto disable selected stack recovery techniques
[1.7] - 2020-03-17
Features
- Profile invocations of arbitrary Java methods
- Filter stack traces by the given name pattern
- Java API to filter monitored threads
--cstack/--no-cstackoption
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 checkcommand to test event availability- Allow shading of AsyncProfiler API
- Enable CPU profiling on WSL
- Enable allocation profiling on Zing
- Reduce the amount of
unknown_Javasamples
[1.6] - 2019-09-09
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:
%pand%t -goption to print method signatures-jcan increase the maximum Java stack depth- Allocaton sampling rate can be adjusted with
-i - Improved reliability on macOS
Changes
-ffile names are now relative to the current shell directory
[1.5] - 2019-01-08
Features
- Wall-clock profiler:
-e wall -e itimermode for systems that do not support perf_events- Native stack traces on macOS
- Support for Zing runtime, except allocation profiling
Improvements
--all-useroption to allow profiling with restrictedperf_event_paranoid(contributed by @jpbempel)-aoption 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
[1.4] - 2018-06-24
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,sand multipliers:K,M,Gfor interval argument - API and command-line option
-vfor 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
[1.3] - 2018-05-13
Features
- Profiling of native functions, e.g. malloc
Improvements
- JDK 9, 10, 11 support for heap profiling with accurate stack traces
rootcan now profile Java processes of any user-joption for limiting Java stack depth
[1.2] - 2018-03-05
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
totalcounter of allocation profiler now measures heap pressure (like JMC)
[1.1] - 2017-12-03
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
listcommand-line option to list supported events- Automatically find target process ID with
jpstool - An option to include counter value in
collapsedoutput - Friendly class names in allocation profile
- Split allocations in new TLAB vs. outside TLAB
Changes
- Replaced
-mmodes with-eevents - Interval changed from
inttolong
[1.0] - 2017-10-09
Features
- CPU profiler without Safepoint bias
- Lightweight Allocation profiler
- Java, native and kernel stack traces
- FlameGraph compatible output