Réserver une Démo
Pré. Proc.

Fuites de Mémoire

Memory leaks profiling interface in Enterprise Architect

Le contrôle Profiler, affichant le nombre d'allocations de mémoire et le nombre d'opérations qui libèrent de la mémoire.

Example memory leak profile of well behaved progam

Un programme bien mené.

La détection des fuites de mémoire est une voie bien connue. Bien que de nombreuses autres options intéressantes soient disponibles, nous pensons que notre approche présente des avantages majeurs, tels que :

  • Aucun changement n'a été apporté à la version existante du projet
  • Aucun fichier d'en-tête requis par le code du projet
  • Aucune dépendance d'exécution à prendre en compte
  • Aucune configuration système à prendre en compte

Usage

Une personne peut utiliser ce mode pour suivre les fuites de mémoire dans une application ou dans une activité au sein de l'application. Une fuite de mémoire du point de vue du profileur est un appel réussi effectué vers une fonction d'allocation de mémoire qui renvoie une adresse mémoire pour laquelle aucun appel correspondant n'est effectué pour libérer cette adresse.

Opération

La détection des fuites de mémoire fonctionne par hooking. Les routines de mémoire du processus sont hookées pour suivre le moment où la mémoire est à la fois alloué et libérée. Les piles d'appels sont capturées au moment de l'allocation et ces informations sont rassemblées dans Enterprise Architect pour produire un rapport sous la forme d'un Graphique d'Appel . La capture est contrôlée ; c'est-à-dire que les mécanismes de hooking peuvent être activés ou désactivés à la demande.

Selon le type de programme et sa consommation de mémoire, vous pouvez employer une stratégie appropriée. Pour les petits programmes, vous pouvez suivre le programme du début à la fin. Pour les programmes à fenêtres plus volumineux, il serait probablement préférable d'activer la capture avant et après une tâche spécifique pour éviter de suivre trop de données.

Résultats

Les résultats peuvent être produits à tout moment au cours de la session. Cependant, la capture doit être désactivée pour que le bouton Rapport devienne actif. C'est vous qui décidez combien de temps vous laissez le Profiler exécuter . Vous activez le bouton Rapport en mettant en pause la capture ou en arrêtant complètement le Profiler.

Les résultats sont affichés dans une vue Rapport . Le rapport s'ouvre initialement avec deux onglets visibles : un seul Graphique d'Appel pondéré et un résumé de fonction. Le Graphique d'Appel décrit toutes les piles d'appels qui ont conduit à des allocations de mémoire et sont agrégées et pondérées en fonction de la fréquence du motif .

Rapports peuvent contenir une quantité variable de « bruit ». Pour vous concentrer sur un domaine qui vous préoccupe particulièrement, recherchez une fonction que vous connaissez dans le rapport récapitulatif et utilisez-la pour accéder directement à la ligne du graphique où elle est présentée.

Exigences

Pour obtenir les meilleurs résultats, l'image et ses modules doivent être créés avec les informations de débogage incluses et sans optimisations. Tout module doté de l'optimisation Frame Pointer Omission (FPO) est susceptible de produire des résultats trompeurs.