GNU/Linux >> Linux Esercitazione >  >> Linux

Come profilare l'utilizzo della memoria?

Usa il massiccio, che fa parte degli strumenti Valgrind. massif-visualizer può aiutarti a rappresentare graficamente i dati o puoi semplicemente usare ms_print comando.


Prova l'heap profiler fornito con gperftools, da Google. L'ho sempre compilato dai sorgenti, ma è disponibile come pacchetto precompilato in diverse distribuzioni Linux.

È semplice da usare come collegare una libreria dinamica ai tuoi eseguibili ed eseguire il programma. Raccoglie informazioni su ogni allocazione di memoria dinamica (per quanto ho visto) e salva su disco un dump della memoria ogni volta che si verifica una delle seguenti condizioni:

  • HEAP_PROFILE_ALLOCATION_INTERVAL i byte sono stati allocati dal programma (predefinito:1Gb)
  • il livello massimo di utilizzo della memoria aumenta di HEAP_PROFILE_INUSE_INTERVAL byte (predefinito:100 Mb)
  • HEAP_PROFILE_TIME_INTERVAL secondi sono trascorsi (predefinito:inattivo)
  • Chiami esplicitamente HeapProfilerDump() dal tuo codice

L'ultimo, secondo la mia esperienza, è il più utile perché puoi controllare esattamente quando avere un'istantanea dell'utilizzo dell'heap e poi confronta due istantanee diverse e vedi cosa c'è che non va.

Alla fine, ci sono diversi possibili formati di output, come testuale o grafico (sotto forma di un grafico diretto):

Usando questo strumento sono stato in grado di individuare usi errati della memoria che non sono riuscito a trovare usando Massif.


Linux
  1. Utilizzo della memoria di Linux

  2. Come limitare l'utilizzo della memoria dell'applicazione?

  3. Come ridurre l'utilizzo della memoria ClamAV?

  4. Come viene riportato l'utilizzo della memoria in Linux?

  5. Come limitare l'utilizzo della memoria per applicazione in Linux?

Come controllare l'utilizzo della memoria in Debian 10

Come trovare i 10 principali processi in esecuzione in base all'utilizzo di memoria e CPU

Come trovare i migliori processi in esecuzione in base all'utilizzo della memoria

Come interpretare l'utilizzo della memoria top/htop?

Come ordinare il comando superiore in base all'utilizzo della memoria

Utilizzo della memoria dei comandi TOP