Provate il heap profiler fornito con gperftools, da Google. L'ho sempre creato da fonti, ma è disponibile come precompiled package in diverse distribuzioni Linux.
È semplice da utilizzare come il collegamento di una libreria dinamica ai file eseguibili e l'esecuzione del programma. Raccoglie informazioni su ogni allocazione dinamica della memoria (per quanto ho visto) e salvare su disco un dump di memoria ogni volta che una delle seguenti circostanze:
HEAP_PROFILE_ALLOCATION_INTERVAL
byte sono stati assegnati dal programma (di default : 1Gb)
- high-acqua utilizzo della memoria marchio aumenta di
HEAP_PROFILE_INUSE_INTERVAL
byte (default: 100Mb)
HEAP_PROFILE_TIME_INTERVAL
secondi sono trascorsi (impostazione predefinita: inattivo)
- È esplicitamente chiama
HeapProfilerDump()
dal codice
L'ultimo, nella mia esperienza, è la più utile perché è possibile controllare esattamente quando per avere una fotografia di utilizzo mucchio e quindi confrontare due istantanee diverse e vedere cosa c'è che non va.
Alla fine, ci sono diversi formati di output possibili, come testuali o grafiche (sotto forma di un grafo orientato):
utilizzo di questo strumento sono stato in grado di individuare gli usi della memoria non corrette che Non ho potuto trovare usando Massif.
fonte
2015-12-03 09:15:37
Grazie, gli screenshot sono molto belli ..., penso che sia quello che ho sempre desiderato. – math