v4.2
Features
- Java Method Tracing and Latency Profiling
- async-profiler#1421: Latency profiling
- async-profiler#1435: Allow wildcards in Instrument profiling engine
- async-profiler#1499:
--traceoption with per-method latency threshold
- System-wide process sampling on Linux
- async-profiler#1411:
--procoption to recordprofiler.ProcessSampleevents
- async-profiler#1411:
- VMStructs stack walker by default
- async-profiler#1539: Use VMStructs stack walking mode by default
- async-profiler#1537: Support
comptaskandvtablefeatures - async-profiler#1517: Use JavaFrameAnchor to find top Java frame
- async-profiler#1449: Special handling of prologue and epilogue of compiled methods
Improvements
- async-profiler#1475: Add
CPUTimeSampleevent support to jfrconv - async-profiler#1414: Per-thread flamegraph option in JFR heatmap converter
- async-profiler#1526: Expose JfrReader dictionary that maps osThreadId to javaThreadId
- async-profiler#1448: Thread name in OpenTelemetry output
- async-profiler#1413: Add
time_nanosandduration_nanosto OTLP profiles - async-profiler#1450: Unwind dylib stubs as empty frames on macOS
- async-profiler#1416: Add synthetic symbols for Mach-O stubs/trampolines
- Allow cross-compilation for 32-bit platforms
Bug fixes
- async-profiler#1515: Fix UnsatisfiedLinkError when tmpdir is set to a relative path
- async-profiler#1500: Detect if
calloccallsmallocfor nativemem profiling - async-profiler#1427: Re-implement SafeAccess crash protection
- async-profiler#1417: Two wall-clock profilers interfere with each other
Project Infrastructure
- async-profiler#1527: GHA: replace macos-13 with macos-15-intel
- async-profiler#1510: Add option to retry tests
- async-profiler#1508: Add more GHA jobs to cover JDK versions on ARM
- async-profiler#1502: Fix job dependencies between integration tests and builds
- async-profiler#1466: Add Liberica JDK on Alpaquita Linux to the CI
- Made integration tests more stable overall