Wie findet man den Heap-Speicher eines laufenden Prozesses?

Wie findet man den Heap-Speicher eines laufenden Prozesses?

Ich möchte wissen, wie man den Heap-Speicher eines Prozesses findet, der im Hintergrund läuft. Gibt es einen Befehl, der dies ermöglicht?

Antwort1

Wenn Sie sich einen bestimmten Prozess namens eg ansehen möchten wing_ide, dann

ps a | fgrep wing_ide | fgrep -v fgrep

gibt Ihnen am Anfang der Zeile eine Nummer (in meinem Fall 29837), die Sie wie folgt verwenden können:

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

Die Ausgabe sieht wie folgt aus:

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

Wenn Sie dies regelmäßig tun, können Sie das folgende Python-Programm verwenden:

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)

Geben Sie dem Programm als Argument den Namen des Prozesses an, nach dem Sie suchen möchten:

python findheap.py wing_ide

verwandte Informationen