Skip to content

Loader for 4.2 (v10): Method tracing and system-wide process sampling

Latest

Choose a tag to compare

@parttimenerd parttimenerd released this 29 Oct 16:41
· 1 commit to main since this release

ap-loader v10

  • Drop support for async-profiler < 4.0 versions, as 4.0 changed how its tested
  • Major changes in the usage of the JFR conversion made by async-profiler
    which are not hidden
  • Clean up the code

The following is copied from the wrapped async-profiler release by Andrei Pangin. The source code linked below should be ignored.

v4.2

Features

  • Java Method Tracing and Latency Profiling
    • #1421: Latency profiling
    • #1435: Allow wildcards in Instrument profiling engine
    • #1499: --trace option with per-method latency threshold
  • System-wide process sampling on Linux
    • #1411: --proc option to record profiler.ProcessSample events
  • VMStructs stack walker by default
    • #1539: Use VMStructs stack walking mode by default
    • #1537: Support comptask and vtable features
    • #1517: Use JavaFrameAnchor to find top Java frame
    • #1449: Special handling of prologue and epilogue of compiled methods

Improvements

  • #1475: Add CPUTimeSample event support to jfrconv
  • #1414: Per-thread flamegraph option in JFR heatmap converter
  • #1526: Expose JfrReader dictionary that maps osThreadId to javaThreadId
  • #1448: Thread name in OpenTelemetry output
  • #1413: Add time_nanos and duration_nanos to OTLP profiles
  • #1450: Unwind dylib stubs as empty frames on macOS
  • #1416: Add synthetic symbols for Mach-O stubs/trampolines
  • Allow cross-compilation for 32-bit platforms

Bug fixes

  • #1515: Fix UnsatisfiedLinkError when tmpdir is set to a relative path
  • #1500: Detect if calloc calls malloc for nativemem profiling
  • #1427: Re-implement SafeAccess crash protection
  • #1417: Two wall-clock profilers interfere with each other

Project Infrastructure

  • #1527: GHA: replace macos-13 with macos-15-intel
  • #1510: Add option to retry tests
  • #1508: Add more GHA jobs to cover JDK versions on ARM
  • #1502: Fix job dependencies between integration tests and builds
  • #1466: Add Liberica JDK on Alpaquita Linux to the CI
  • Made integration tests more stable overall