Ho scritto un servizio di rete persistente in Perl che gira su Linux.Perl profiling dell'utilizzo della memoria e rilevamento delle perdite?
Sfortunatamente, mentre è in esecuzione, il Resident Stack Size (RSS) cresce, cresce e cresce lentamente ma inesorabilmente.
Questo nonostante gli sforzi diligenti da parte mia di eliminare tutte le chiavi di hash non necessarie ed eliminare tutti i riferimenti a oggetti che altrimenti causerebbero il conteggio dei riferimenti e impedire la raccolta dei dati inutili.
Esistono buoni strumenti per profilare l'utilizzo della memoria associato a varie primitive di dati nativi, oggetti di riferimento hash benedetti, ecc. All'interno di un programma Perl? Cosa usi per rintracciare le perdite di memoria?
Non trascorro abitualmente il tempo nel debugger Perl o in nessuno dei vari profiler interattivi, quindi sarebbe gradita una risposta calda, gentile, non esoterica. :-)
Hai capito? La mia ipotesi migliore data le informazioni che hai fornito è che c'è una libreria (introdotta tramite il dynaloader di alcuni moduli) che è il colpevole ... – Ether
Questa sembra essere diventata la "ricerca di una perdita di memoria" canonica, dato che le mie risposte dagli altri domande simili sono state tutte unite qui :) In realtà non ho risposto a una domanda tre volte; più thread sono stati uniti nel tempo. – Ether
Slip of tongue ... intendevi "Resident Set Size" ... questo numero non è correlato allo stack –