Autres options
perf record
et perf report
sont deux commandes qui jouent un rôle central
quand on utilise perf
pour analyser des grosses applications. Elles ont donc,
sans surprise, beaucoup d’options.
Options de perf record
Dans le cas de
perf record
, nous
avons déjà
abordé
de nombreuses
options
utiles,
mais quelques autres options méritent encore d’être mentionnées :
- Il existe un certain nombre d’options de performance qui permettent
de diminuer le nombre d’échantillons perdus quand on est forcé de travailler à
fréquence d’échantillonnage élevée, au prix d’une consommation de ressources
supplémentaire par
perf
: ordonnancement temps réel (--realtime
/-r
), taille des tampons de transit pour les données mesurées (--mmap-pages
/-m
), E/S asynchrone multi-thread (--aio
)… - On peut demander d’enregistrer divers détails pour chaque échantillon mesuré : addresses mémoire virtuelles et physiques, timestamps, numéro du CPU où l’échantillon a été mesuré, direction prise au niveau des instructions de branchement, contenu des registres CPU…
Filtrage non destructif
Au niveau de perf report
, il est possible de filtrer les données
affichées (par PID, TID, UID, cgroup, binaire/DSO, CPU…). La différence par
rapport aux options de filtrage de perf record
, c’est qu’ici les données ont
bien été enregistrées dans le fichier perf.data
, mais on choisit juste de ne
pas les afficher pour cette session perf report
.
Sélection temporelle
perf report
fournit également quelques options de filtrage et d’aggrégation
temporelle, qui sont très utiles quand on étudie une application qui alterne
entre plusieurs comportements dans le temps (typiquement des phases calcul vs ES
ou initialisation vs traitement vs finalisation) :
- Avec
--time
, on peut n’afficher que les données qui concernent une certaine fenêtre de temps dans les données issues du fichierperf.data
. La fenêtre peut être donnée en pourcentage (ex :--time 15%-90%
) ou en secondes (ex :--time 0.5,13.3
). Et il est possible de fusionner des données issues de plusieurs fenêtres de temps. - Avec
--sort time
, qui se combine avec les autre options--sort
abordées précédemment, on peut comparer l’activité de l’application au sein de “tranches de temps” de taille fixe contrôlées par l’option--time-quantum
. Cela est notamment utile pour repérer les changements qualitatifs de comportement de l’application et en déduire les bonnes valeurs à passer à--time
pour étudier ces comportements différents un par un.
Sortie non interactive
Une dernière option de visualisation utile de perf report
est --stdio
,
qui produit une version non interactive de la table qui peut facilement être
redirigée vers un fichier texte pour partage avec autrui ou post-traitement par
un script. Mais pour cette dernière tâche, il y a un outil perf
plus adapté
que nous aborderons ultérieurement.