# async-profiler/async-profiler

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/async-profiler-async-profiler).**

8,871 stars · 960 forks · C++ · apache-2.0

## Links

- GitHub: https://github.com/async-profiler/async-profiler
- Homepage: https://github.com/async-profiler/async-profiler/releases
- awesome-repositories: https://awesome-repositories.com/repository/async-profiler-async-profiler.md

## Description

Async-profiler is a sampling profiler for Java applications that tracks CPU time and stack traces across execution frames to identify performance bottlenecks. It is designed to capture profiling data without introducing timing bias.

The project provides capabilities for JVM memory analysis to locate native and heap allocation hotspots and memory leaks. It also includes system contention analysis to identify resource bottlenecks through the tracking of contended locks and hardware performance counters.

The tool converts raw profiling data into visual performance reports, including interactive flame graphs and heatmaps, to represent execution paths.

## Tags

### System Administration & Monitoring

- [Application Performance Profiling](https://awesome-repositories.com/f/system-administration-monitoring/performance-monitoring-tools/application-performance-profiling.md) — Provides a sampling profiler to identify performance bottlenecks and measure execution time in Java applications.
- [Performance Reporting](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/performance-visualization/performance-reporting.md) — Exports profiling data into interactive visual reports including flame graphs and heatmaps. ([source](https://cdn.jsdelivr.net/gh/async-profiler/async-profiler@master/README.md))
- [Performance Diagnostic Tools](https://awesome-repositories.com/f/system-administration-monitoring/performance-diagnostic-tools.md) — Identifies resource bottlenecks by tracking contended locks and hardware performance counters.

### Operating Systems & Systems Programming

- [Memory Allocation Tracers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/memory-allocation-tracers.md) — Tracks heap and native memory allocations within the JVM to detect memory leaks and allocation hotspots.
- [Non-Pausing State Sampling](https://awesome-repositories.com/f/operating-systems-systems-programming/non-pausing-state-sampling.md) — Implements non-blocking stack trace capture via internal JVM functions to avoid pausing application threads.
- [Hardware Performance Counter Integrations](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-performance-counter-integrations.md) — Reads low-level processor and system counters to track hardware-level execution metrics and resource contention. ([source](https://cdn.jsdelivr.net/gh/async-profiler/async-profiler@master/README.md))
- [PerfEvents Interfaces](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-subsystem-dumping/perfevents-interfaces.md) — Reads kernel-level hardware counters and CPU cycles via the Linux perf subsystem for high-precision timing.

### Programming Languages & Runtimes

- [JVM Architecture](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/java-ecosystem/jvm-architecture.md) — Integrates with the JVM architecture to resolve native method frames and access internal symbols.

### User Interface & Experience

- [Profiling Signal Handlers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling-systems/system-event-handling/os-signal-handlers/profiling-signal-handlers.md) — Triggers sampling events using OS signals to ensure precise captures regardless of JVM safe-points.

### Testing & Quality Assurance

- [Flame Graph Visualizers](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-diagnostics/execution-profilers/flame-graph-visualizers.md) — Generates interactive flame graphs from sampled stack traces to visualize frequent execution paths.
