Releases: async-profiler/async-profiler
Releases · async-profiler/async-profiler
Maintenance release
v2.5.1
Bug fixes
- Prevent early unloading of libasyncProfiler.so
- Read kernel symbols only for perf_events
- Escape backslashes in flame graphs
- Avoid duplicate categories in
jfrsync
mode - Fixed stack overflow in RedefineClasses
- Fixed deadlock when flushing JFR
Improvements
- Support OpenJDK C++ Interpreter (aka Zero)
- Allow reading incomplete JFR recordings
macOS/ARM64 port and many JFR improvements
v2.5
Features
- macOS/ARM64 (aka Apple M1) port
- PPC64LE port (contributed by @ghaug)
- Profile low-privileged processes with perf_events (contributed by @Jongy)
- Raw PMU events; kprobes & uprobes
- Dump results in the middle of profiling session
- Chunked JFR; support JFR files larger than 2 GB
- Integrate async-profiler events with JDK Flight Recordings
Improvements
- Use RDTSC for JFR timestamps when possible
- Show line numbers and bci in Flame Graphs
- jfr2flame can produce Allocation and Lock flame graphs
- Flame Graph title depends on the event and
--total
- Include profiler logs and native library list in JFR output
- Lock profiling no longer requires JVM symbols
- Better container support
- Native function profiler can count the specified argument
- An option to group threads by scheduling policy
- An option to prepend library name to native symbols
Notes
- macOS build is provided as a fat binary that works both on x86-64 and ARM64
- 32-bit binaries are no longer shipped. It is still possible to build them from sources
- Dropped JDK 6 support (may still work though)
Maintenance release
v1.8.7
Bug fixes
- Workaround for JDK-8173361
- Backported fix for "Accept timed out" exception
Maintenance release
v1.8.6
Improvements
log=none
option to suppress warnings about missing JVM symbols- Sign macOS binaries
Bug fixes
- Workaround for JDK-8212160
macOS/AArch64 support
This is an Early Access release of async-profiler with the native support for Apple silicon.
Maintenance release
v1.8.5
Improvements
- Backported JFR to FlameGraph converter
Bug fixes
- Stricter
safemode
to avoid stack walking in suspicious cases
Multievent profiling. JFR v2 compatible output
v2.0
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
/--end
functions - Time-to-safepoint profiling:
--ttsp
Improvements
- Unlimited frame buffer. Removed
-b
option 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
Maintenance release
v1.8.4
Improvements
- Smaller and faster agent library
Bug fixes
- Fixed JDK 7 crash during wall-clock profiling
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