我想知道如何找到在后台运行的进程的堆内存。有没有任何命令允许这样?
答案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