如何找到正在運行的進程的堆內存?

如何找到正在運行的進程的堆內存?

我想知道如何找到在後台運行的進程的堆內存。有沒有任何指令允許這樣?

答案1

如果您想查看名為eg的特定進程wing_ide,那麼

ps a | fgrep wing_ide | fgrep -v fgrep

在行的開頭給出一個數字(在我的例子中為 29837),如下使用該數字:

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

輸出看起來像:

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

如果您定期執行此操作,您可能需要使用以下 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)

您向哪個程式提供要搜尋的進程的名稱作為參數:

python findheap.py wing_ide

相關內容