samedi 23 janvier 2010

Valgrind

J'expérimente un petit peu avec Valgrind, et notamment avec callgrind, lequel génère le graphe des appels de fonctions, avec le nombre d'instructions passées dans chaque. C'est très instructif, et fondamental lorsque l'on essaie d'optimiser son programme. Et en plus, le magnifique kcachegrind est l'application graphique qui permet de visualiser les résultats.

Lançons donc un beau test:

valgrind --tool=callgrind ./unittests

Ceci génère un fichier callgrind.out., que l'on charge dans kcachegrind.
kcachegrind callgrind.out.16532


Et voilà le travail!


En regardant par exemple une de mes fonctions les plus coûteuses, la bien nommée geom::isCollision, l'on voit qu'en dehors d'elle même, elle a principalement passé son temps à récupérer les listes d'axes et de vertex pour les cylindres. La collision de cylindres coûte cher, n'en doutons pas!

Aucun commentaire: