バックグラウンドで実行されているプロセスのヒープメモリを見つける方法を教えてください。そのようなことができるコマンドはありますか?
たとえば、特定のプロセスを確認したい場合は、 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 pid in psutil.get_pid_list():
p = psutil.Process(pid)
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