PROGRAMMATION PYTHON
Tracemem est une bibliothèque légère pour vous aider à suivre la mémoire complète des sessions Python.
Tracemem
est un outil de profilage Python léger qui vous permet de mesurer l'utilisation totale de la mémoire d'une session Python à un moment donné et de suivre les modifications ultérieures. Cela peut être utilisé pour déboguer le code en cas de problèmes de mémoire ou simplement pour enregistrer l'utilisation de la mémoire. Tracemem
L'ensemble des fonctionnalités de est très limité, grâce à quoi il s'agit d'un outil très léger, avec un impact minimal sur la mémoire de la session. Néanmoins, comme tout outil de profilage de mémoire, il peut avoir un impact significatif sur le temps d’exécution du programme.
Sous le capot, le paquet est enveloppé dans un emballage pympler.asizeof.asizeof()
un pympler
fonction qui mesure l'utilisation de la mémoire par une session Python. Cela signifie que tracemem
propose une API simple pour suivre et évaluer la mémoire de session.
Cette simplicité a un coût. Vous ne pouvez pas utiliser cet outil pour mesurer l'utilisation de la mémoire d'une fonction, d'un objet ou d'un extrait de code particulier. Si vos besoins vont au-delà de la simple évaluation de la mémoire de session, vous pouvez utiliser d'autres outils, tels que :
Et bien sûr, il existe des profileurs Python typiques, que vous pouvez lire ici :
Bien que je m'appuie habituellement sur le cProfile
Profileur Python, le line profiler
Le package offre un outil puissant pour le profilage ligne par ligne.
Tracemem
L'API de est quelque peu atypique pour Python, mais il s'agit d'une décision délibérée prise pour garder l'outil aussi simple et léger que possible. Cette API inhabituelle vient aussi du fait que tracemem
est un outil de profilage, généralement utilisé pour le débogage. Par conséquent, l’approche différente de la syntaxe (ou plutôt des importations) ne devrait pas poser de problèmes majeurs.
Cet article plonge dans les principes fondamentaux de tracemem
et montre comment l'utiliser pour surveiller l'ensemble…