Chapitre 2. Utiliser KCachegrind

Générer les données à afficher

Tout d'abord, il faut générer les données de performance en mesurant les aspects des caractéristiques de l'exécution d'une application. Pour cela, il faut utiliser un outil de profilage. KCachegrind n'inclut pas d'outil de profilage, mais est prévu pour fonctionner avec Callgrind. En utilisant un convertisseur, il peut aussi être utilisé pour afficher les données produites par OProfile. Même si l'objectif de ce manuel n'est pas de documenter le profilage avec ces outils, la prochaine section fournit des petits tutoriels afin que vous puissiez démarrer.

Callgrind

Callgrind est disponible sur Valgrind. Notez qu'il était précédemment nommé Calltree, mais ce nom était trompeur.

L'usage le plus répandu est de démarrer votre application en préfixant la ligne de commande par valgrind --tool=callgrind , comme dans :

valgrind --tool=callgrind mon_programme mes_arguments

À la fin de l'exécution du programme, un fichier callgrind.out.pid sera généré. il peut être chargé dans KCachegrind.

Un usage plus avancé est de générer des données de profilage quand une fonction donnée de votre application est appelée. Par exemple, pour Konqueror, pour n'avoir les données de profilage que pour le rendu d'une page web, vous pouvez décider de générer les données quand vous sélectionnez l'élément du menu AffichageRecharger . Ceci correspond à un appel à KonqMainWindow::slotReload. Utilisez :

valgrind --tool=callgrind --dump-before=KonqMainWindow::slotReload konqueror

Ceci va produire plusieurs fichiers de données de profilage avec un numéro additionnel séquentiel à la fin du nom du fichier. Un fichier sans un tel nombre à la fin (se terminant seulement par le PID du processus) sera aussi produit. En chargeant ce fichier dans KCachegrind, tous les autres fichiers seront aussi chargés, et peuvent être affichés dans la synthèse des parties et dans la liste des parties.

OProfile

OProfile est disponible sur sa page web. Suivez les instructions d'installation du site web. Veuillez vérifier toutefois si votre distribution ne le fournit pas déjà en tant que paquet (comme dans SuSE®).

Le profilage au niveau système n'est autorisé que pour l'administrateur, car toutes les actions sur le système peuvent être observées. C'est pourquoi ce qui va suivre doit être fait en tant qu'administrateur. Tout d'abord, configurez le processus de profilage, en utilisant l'interface graphique avec oprof_start ou l'outil en ligne de commande opcontrol. Une configuration standard devrait être le mode temps (TBS, voir introduction). Pour démarrer la mesure, lancez opcontrol -s. Ensuite lancez l'application à profiler, et après, lancez opcontrol -d. Ceci va écrire les résultats de la mesure dans des fichiers sous le dossier /var/lib/oprofile/samples/. Pour pouvoir afficher les données dans KCachegrind, lancez la commande suivante dans un dossier vide :

opreport -gdf | op2callgrind

. Ceci va produire un nombre important de fichiers, un pour chaque programme qui s'exécutait sur le système. Chacun peut être chargé indépendamment dans KCachegrind.