Sampling stack traces from running processes to find what's actually consuming CPU, memory, or I/O time.
Profiling is the practice of sampling a running program's call stack at fine granularity to attribute resource use (CPU time, memory allocations, blocked I/O, lock contention) to specific functions and lines of code. Continuous profiling, popularized by Pyroscope, Polar Signals, and Datadog Profiler, runs the sampler at low overhead in production all the time, so when a regression happens you can compare today's flame graph against last week's. The output is the actionable answer to 'what changed?' that traces and metrics can't always provide.
Most performance regressions don't show up in metrics until customers feel them, by which point you have a flame-graph mystery. Continuous profiling shortens that loop dramatically, the regression is visible in the profile diff the moment it ships. For services in tight latency budgets, profiling is the difference between 'we tuned the code' and 'we guessed at the code.'
See the part of the platform that handles profiling (continuous profiling) in production.