Le PPROF est un outil de visualisation et d'analyse des données de profilage.
PPROF lit une collection d'échantillons de profilage au format Profil.proto et génère des rapports pour visualiser et aider à analyser les données. Il peut générer à la fois des rapports de texte et graphiques (via l'utilisation du package de visualisation DOT).
Profil.proto est un tampon de protocole qui décrit un ensemble de callstacks et d'informations de symbolisation. Une utilisation commune consiste à représenter un ensemble de callages échantillonnés à partir du profilage statistique. Le format est décrit sur le fichier proto / profil.proto. Pour plus de détails sur les tampons de protocole, consultez https://developers.google.com/protocol-buffers
Les profils peuvent être lus à partir d'un fichier local ou sur HTTP. Plusieurs profils du même type peuvent être agrégés ou comparés.
Si les échantillons de profil contiennent des adresses de machine, PPROF peut les symboliser grâce à l'utilisation des outils de binutils natifs (Addr2line et NM).
Ce n'est pas un produit Google officiel.
Prérequis:
GO Kit de développement d'une version prise en charge. Suivez ces instructions pour préparer l'environnement.
Graphviz: http://www.graphviz.org/ facultatif, utilisé pour générer des visualisations graphiques des profils
Pour le construire et l'installer:
go install github.com/google/pprof@latest
Le binaire sera installé $GOPATH/bin
( $HOME/go/bin
par défaut).
PPROF peut lire un profil à partir d'un fichier ou directement à partir d'un serveur via HTTP. Spécifiez les entrées de profil dans la ligne de commande et utilisez des options pour indiquer comment formater le rapport.
% pprof -top [main_binary] profile.pb.gz Where main_binary: Local path to the main program binary, to enable symbolization profile.pb.gz: Local path to the profile in a compressed protobuf, or URL to the http service that serves a profile.
pprof -web [main_binary] profile.pb.gz
Si aucune option de formatage de sortie n'est spécifiée, PPROF s'exécute en mode interactif, où lit le profil et accepte les commandes interactives pour la visualisation et le raffinement du profil.
pprof [main_binary] profile.pb.gz This will open a simple shell that takes pprof commands to generate reports. Type 'help' for available commands/options.
Si l'indicateur -http
est spécifié, PPROF démarre un serveur Web sur le port hôte spécifié: qui fournit une interface Web interactive à PPROF. L'hôte est facultatif et est "localhost" par défaut. Le port est facultatif et est un port disponible aléatoire par défaut. -http=":"
Démarrage un serveur localement à un port aléatoire.
pprof -http=[host]:[port] [main_binary] profile.pb.gz
La commande précédente doit ouvrir automatiquement votre navigateur Web à la bonne page; Sinon, vous pouvez visiter manuellement le port spécifié de votre navigateur Web.
PPROF peut lire les fichiers perf.data
générés par l'outil Linux Perf en utilisant le programme perf_to_profile
du package perf_data_converter.
Pour afficher le démontage des profils collectés à partir de programmes GO compilés sous forme de exécutables Windows, l'exécutable doit être construit avec go build -buildmode=exe
. LLVM ou GCC doit être installé, de sorte que des outils requis comme addr2line
et nm
sont disponibles pour pprof
.
Voir doc / readme.md pour une documentation plus détaillée de l'utilisateur final.
Voir contribution.md pour la documentation de contribution.
Voir proto / readme.md pour une description du format Profil.proto.