J'ai écrit un service réseau persistant dans Perl qui tourne sous Linux. Malheureusement, en cours d'exécution, sa taille de pile résidente (RSS) ne cesse de croître, de croître et de se développer, lentement mais sûrement.Profilage d'utilisation de la mémoire Perl et détection de fuite?
Ceci en dépit des efforts diligents de ma part pour effacer toutes les clés de hachage inutiles et supprimer toutes les références à des objets qui, autrement, provoqueraient le maintien des compteurs de référence et empêcheraient la récupération de place.
Existe-t-il de bons outils pour profiler l'utilisation de la mémoire associée à diverses primitives de données natives, objets de référence de hachage bénie, etc. dans un programme Perl? Qu'est-ce que vous utilisez pour repérer les fuites de mémoire?
Je ne passe habituellement pas de temps dans le débogueur Perl ou l'un des différents profileurs interactifs, donc une réponse chaleureuse, douce et non ésotérique serait appréciée. :-)
L'avez-vous découvert? Ma meilleure supposition étant donné l'information que vous avez fournie est qu'il y a une bibliothèque (fournie par le dynaloader d'un module) qui est le coupable ... – Ether
Cela semble être devenu la question canonique "trouver une fuite de mémoire", puisque mes réponses d'autres des questions similaires ont toutes été fusionnées ici :) Je n'ai pas répondu à une question trois fois; plusieurs threads ont été fusionnés ensemble au fil du temps. – Ether
Glissement de langue ... vous vouliez dire "Resident Set Size" ... ce nombre est sans rapport avec la pile –