¿Cómo encontrar la memoria dinámica de un proceso en ejecución?

¿Cómo encontrar la memoria dinámica de un proceso en ejecución?

Me gustaría saber cómo encontrar la memoria del montón de un proceso que se ejecuta en segundo plano. ¿Existe algún comando que lo permita?

Respuesta1

Si desea ver un proceso en particular llamado, por ejemplo wing_ide, entonces

ps a | fgrep wing_ide | fgrep -v fgrep

le da un número al comienzo de la línea (en mi caso 29837), use este número de la siguiente manera:

fgrep '[heap]' /proc/29837/maps

La salida se ve así:

01d56000-07026000 rw-p 00000000 00:00 0                       [heap]

Si hace esto con regularidad, es posible que desee utilizar el siguiente programa de Python:

import sys
import psutil

for p in psutil.process_iter():
    if p.name == sys.argv[1]:
        print(pid)
        for map in p.get_memory_maps(grouped=False):
            if '[heap]' in map.path:
                print(map.addr)

A qué programa le proporcionas el nombre del proceso que deseas buscar como argumento:

python findheap.py wing_ide

información relacionada