Domanda

C'è un modo siamo in grado di registrare occupazione di memoria? In un modo che dopo il processo ha finitura possiamo ancora avere accesso ad esso.

Il modo tipico verifico occupazione di memoria è questa:

$ cat /proc/PID/status

Ma in nessun modo esistere dopo che il processo è terminato.

È stato utile?

Soluzione

si può fare qualcosa di simile:

watch 'grep VmSize /proc/PID/status >> log'

Al termine del programma avrete una lista di impronte di memoria nel tempo log.

Altri suggerimenti

Valgrind ha un profiler di memoria denominata massiccio che fornisce informazioni dettagliate circa l'utilizzo della memoria del vostro programma:

  

Massif è un profiler mucchio. Esegue dettagliata profilazione mucchio prendendo istantanee regolari di heap di un programma. Si produce un grafico che mostra l'utilizzo mucchio nel tempo, comprese informazioni su quali parti del programma sono responsabili per la maggior allocazioni di memoria. Il grafico è integrato da un file di testo o HTML che include più informazioni per determinare in cui viene assegnata la maggior parte della memoria. Massiccio esegue programmi circa 20 volte più lento del normale.

È possibile registrare utilizzando Munin + un plugin personalizzato.

Questo vi permetterà di monitorare e salvare le informazioni processo necessario, e grafico che, con facilità.

Ecco una risposta correlata ho dato a serverfault.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top