# felixge/fgprof

🚀 fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.

Repository: https://github.com/felixge/fgprof
Canonical: https://ross.abutalabs.com/products/fgprof
Language: Go
License: MIT
License Family: permissive
Topics: golang, go, performance, performance-analysis, profiling, profiling-library
Last push: 2025-05-02T11:48:54+00:00

## Health v2 (maintenance only)
Score: 31/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 19, release rhythm 8, longevity 100
- inputs: {"age_days": 2263, "days_push": 488, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3110, forks 100 (observed 2026-08-28T04:07:43.908283+00:00)

## What it is
fgprof is a sampling Go profiler that analyzes both On-CPU and Off-CPU (e.g. I/O) time together, also known as wall-clock profiling. It exposes an HTTP handler compatible with `go tool pprof` and Brendan Gregg's FlameGraph tooling.

## Use cases
- profile a Go application with mixed CPU and I/O workloads
- analyze off-CPU time spent waiting on I/O in Go
- generate flame graphs from a running Go service
- complement the builtin pprof CPU profiler with wall-clock profiling
- find where goroutines spend time blocked or sleeping
- profile a Go HTTP server via an HTTP endpoint

## When to choose
- your Go application has mixed I/O and CPU workloads
- you need wall-clock profiling that includes Off-CPU time
- you want pprof-compatible output from an HTTP endpoint
- you want to generate flame graphs with Brendan Gregg's tooling

## When to avoid
- you only need precise On-CPU profiling - Go's builtin pprof CPU profiler is better at that
- you run Go older than 1.19 with many goroutines, where fgprof can cause significant STW latencies
- you need tracing-level detail of I/O operations rather than sampling

## Facets
- artifact type: library
- maturity: stable
- function: monitoring, benchmarking, developer-tools
- domain: performance, developer-tools, backend
- platform: go, windows, cross-platform
- tags: profiling, go-profiler, wall-clock-profiling, off-cpu-analysis, pprof, flamegraph, sampling-profiler, linux, macos

## Member repositories
- felixge/fgprof (main) score 31

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:43.908283+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:26:44.729551+00:00, confidence not recorded.
  - readme: https://github.com/felixge/fgprof (fetched 2026-08-28T04:07:43.908283+00:00, sha ac76e928ba81)
- Data as of 2026-08-30T08:39:29.467469+00:00.
