← retour aux snippets

perf: profiler CPU et flamegraph basique

Enregistrer un profil d'échantillonnage CPU et générer un SVG de flamegraph.

bash monitoring #perf#profile#flamegraph

objectif

Identifier les fonctions les plus coûteuses via un profilage échantillonné.

code minimal

sudo perf record -F 99 -g -- sleep 10 && sudo perf script > out.perf

utilisation

# générer un flamegraph (dépôt FlameGraph requis)
git clone https://github.com/brendangregg/FlameGraph.git
./FlameGraph/stackcollapse-perf.pl out.perf | ./FlameGraph/flamegraph.pl > flame.svg

variante(s) utile(s)

# profiler un process spécifique
sudo perf record -F 99 -g -p $(pgrep -xo app) -- sleep 10

notes

  • nécessite perf et des symboles de débogage pour une meilleure lisibilité.
  • générer un flamegraph requiert les scripts du dépôt FlameGraph.