- Native stack traces on macOS
- Interactive Call tree and Backtrace tree in HTML format (contributed by @rpulle)
- Experimental support for Java Flight Recorder (JFR) compatible output
- 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
- Default CPU sampling interval reduced to 10 ms
- Changed the text format of flat profile
- Profiling of native functions, e.g. malloc
- 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
- Produce SVG files out of the box; flamegraph.pl is no longer needed
- Profile ReentrantLock contention
- Java API
- Allocation and Lock profiler now works on JDK 7, too
- Faster dumping of results
total
counter of allocation profiler now measures heap pressure (like JMC)
- 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
- 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
- Replaced
-m
modes with-e
events - Interval changed from
int
tolong
- CPU profiler without Safepoint bias
- Lightweight Allocation profiler
- Java, native and kernel stack traces
- FlameGraph compatible output