Memray : un profileur mémoire pour Python

Par:
fredericmazue

lun, 09/05/2022 - 16:18

Memray est un profileur de mémoire pour Python. Memray est capable de suivre les allocations de mémoire dans le code Python, dans les modules d'extension natifs et même dans l'interpréteur Python lui-même. Il peut générer plusieurs types de rapports différents pour vous aider à analyser les données d'utilisation de la mémoire capturées. Bien qu'il soit couramment utilisé comme outil CLI, il peut également être utilisé comme bibliothèque pour effectuer des tâches de profilage plus fines.

Selon la société Bloomberg qui l'a conçu, Memray a plusieurs caractéristiques notables :

  • Memray trace chaque appel de fonction afin qu'il puisse représenter avec précision la pile d'appels, contrairement aux profileurs d'échantillonnage.
  • Memray gère également les appels natifs dans les bibliothèques C/C++ afin que toute la pile d'appels soit présente dans les résultats.
  • Le profilage ne ralentit que légèrement l'application. Le suivi du code natif est un peu plus lent, mais cela peut être activé ou désactivé à la demande.
  • Memray fonctionne avec les threads Python.
  • Memray fonctione avec les threads natifs (par exemple, les threads C++ dans les extensions C).

Memray nécessite Python 3.7+ et s'installe très facilement :

python3 -m pip install memray

Memray est documenté sur le site de Bloomberg, ici

Memray est un logiciel libre sous licence Apache 2.0, disponible sur GitHub.