You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dtrace: Available on Solaris (includes Mac but not Ubuntu) with notable highlights prstat and mpstat. prstat is not available on Ubuntu but can be replicated with htop and ps
collectl: Full system level profiling including CPU, disk, memory and network
pprof: pprof is a tool for visualization and analysis of profiling data
Samply: a command line CPU profiler which uses the Firefox profiler as its UI. works on macOS, Linux, and Windows.
Continuous Profiling
parca: Continuous profiling for analysis of CPU and memory usage, down to the line number and throughout time. Saving infrastructure cost, improving performance, and increasing reliability
parca-agent: eBPF-based always-on profiler auto-discovering targets in Kubernetes and systemd, zero code changes or restarts needed! Supports multiple languages: C/C++, Rust, Go, Python, Ruby, Java, etc.
Ingero: eBPF-based GPU causal observability agent. Traces CUDA Runtime/Driver APIs via uprobes and host kernel events via tracepoints. Builds causal chains explaining GPU latency with full Python-to-CUDA stack traces.
Flame Graphs: flame graphs vs flame charts, off cpu profiling, icicle charts and more
How to read icicle and flame graphs: Flame graphs and icicle graphs are a great way to visualize performance profiles. In this post, we will learn how to read and interpret them.
Sampling vs Tracing: sampling based profilers are easier to use since they don't require any code change while instrumentation based profilers require code changes but are generally more informative