Profile

Un article de SmartEiffelWiki, l'encyclopéde libre.


Le profileur de SmartEiffel est un profileur embarqué. Celà signifie que pour l'utiliser, vous devez compiler votre application avec une option spéciale -profile. L'exécutable généré sera alors équipé du profileur, vous pouvez lancer votre application comme normalement.

Note : profile n'est disponible qu'avec compile_to_c (ou compile).

Le profileur permet d'obtenir, à la fin de l'exécution d'un programme, un certain nombre d'informations sur son exécution. Toutes ces informations sont générées dans un fichier appelé profile.se dans le répertoire courant.

Résultats obtenus

Le fichier profile.se est produit à la fin du programme, c'est-à-dire juste avant de rendre la main à l'utilisateur.

Ce fichier contient deux types d'informations : les temps d'exécution, ainsi que le graphe d'appel.

Les informations sont présentées successivement dans un résumé puis en détail.

Bien qu'humainement lisible, le fichier contient de nombreuses informations. Il pourrait être utile, à terme, de construire un outil qui puisse tirer parti de ces informations.

Graphe d'exécution

Pour chaque fonction, le profileur indique les données suivantes :

  • nombre d'exécutions : combien de fois la fonction a été exécutée,
  • appelants : par quelle fonction elle a été appelée, et combien de fois,
  • appelés : quelle fonction elle a appelé, et combien de fois.

Temps d'exécution

Note : à cause de sa nature embarquée, le profileur ralentit le programme ; il faut tenir compte de ce fait et considérer les temps obtenus comme relatifs, jamais comme des temps absolus.

Le profileur affiche, pour chaque fonction, deux temps :

  • cumul time (temps cumulé) qui est le temps complet passé dans la fonction et les fonctions appelées,
  • own time (temps propre) qui est le temps passé uniquement dans cette fonction, hors fonctions appelées.

Grâce à la connaissance du nombre d'appel de chaque fonction, une valeur moyenne est aussi donnée.

Le résumé affiche l'ensemble des informations triées par temps propre.

Outils personels
Autres langues