GNU/Linux >> Tutoriels Linux >  >> Linux

Comment profiler l'utilisation de la mémoire ?

Utilisez du massif, qui fait partie des outils Valgrind. massif-visualizer peut vous aider à représenter graphiquement les données ou vous pouvez simplement utiliser le ms_print commande.


Essayez le profileur de tas fourni avec gperftools, par Google. Je l'ai toujours construit à partir des sources, mais il est disponible sous forme de package précompilé sous plusieurs distributions Linux.

C'est aussi simple à utiliser que de lier une bibliothèque dynamique à vos exécutables et d'exécuter le programme. Il collecte des informations sur chaque allocation de mémoire dynamique (pour autant que j'ai vu) et enregistre sur le disque un vidage mémoire chaque fois que l'un des événements suivants se produit :

  • HEAP_PROFILE_ALLOCATION_INTERVAL octets ont été alloués par le programme (par défaut :1 Go)
  • la marque d'utilisation maximale de la mémoire augmente de HEAP_PROFILE_INUSE_INTERVAL octets (par défaut :100 Mo)
  • HEAP_PROFILE_TIME_INTERVAL secondes se sont écoulées (par défaut :inactif)
  • Vous appelez explicitement HeapProfilerDump() à partir de votre code

Le dernier, d'après mon expérience, est le plus utile car vous pouvez contrôler exactement quand avoir un instantané de l'utilisation du tas puis comparez deux instantanés différents et voyez ce qui ne va pas.

A terme, il existe plusieurs formats de sortie possibles, comme textuel ou graphique (sous forme de graphe orienté) :

Grâce à cet outil, j'ai pu repérer les utilisations incorrectes de la mémoire que je ne pouvais pas trouver avec Massif.


Linux
  1. Utilisation de la mémoire Linux

  2. Comment obtenir le pourcentage d'utilisation de la mémoire avec vmstat ?

  3. Comment limiter l'utilisation de la mémoire des applications ?

  4. Comment l'utilisation de la mémoire est-elle signalée sous Linux ?

  5. Comment limiter l'utilisation de la mémoire par application sous Linux ?

Comment vérifier l'utilisation de la mémoire dans Debian 10

Comment trouver les 10 principaux processus en cours d'exécution par utilisation de la mémoire et du processeur

Comment trouver les principaux processus en cours d'exécution par utilisation de la mémoire

Comment interpréter l'utilisation de la mémoire Top/htop ?

Comment trier la commande supérieure en fonction de l'utilisation de la mémoire

Utilisation de la mémoire de la commande TOP