在开始编写自己的代码之前,我想了解是否有 GNU/Linux 软件能够输出类似的内容QNX 的showmem
。
对于正在运行的每个进程的每个线程,我希望看到内存消耗分为以下几类:
Process listing (Total, Code, Data, Heap, Stack, Other)
319488 1024000 24587 167936 24576 0 4103 devc-con-hid (thread 2)
0 0 0 0 4096 0 4103 devc-con-hid (thread 2)
0 0 0 0 20480 0 4103 devc-con-hid (thread 1)
0 102400 8192 0 0 0 4103 devc-con-hid (proc/boot/devc-con-hid)
0 0 16384 0 0 0 4103 devc-con-hid (proc/boot/libc.so.3)
0 0 0 0 0 ( 36864) 4103 devc-con-hid (/dev/mem)
有什么东西可以让这一切成为可能吗?
答案1
您可以使用以下命令查看一些信息pmap -x PID
- 对于进程的每个库/模块/打开文件/堆栈,它分为 kbytes、rss 和脏内存:
取消定义@uml:~$ pmap -x 13206 13206:睡眠60 地址千字节 RSS 脏模式映射 0000000000400000 24 20 0 rx--睡眠 0000000000606000 4 4 4 r---- 睡眠 0000000000607000 4 4 4 rw---睡眠 000000000063b000 132 8 8 rw--- [匿名] 00007f6a9847e000 4308 44 0 r---- 语言环境存档 00007f6a988b3000 1772 376 0 rx--libc-2.19.so 00007f6a98a6e000 2048 0 0 ----- libc-2.19.so 00007f6a98c6e000 16 16 16 r---- libc-2.19.so 00007f6a98c72000 8 8 8 rw---libc-2.19.so 00007f6a98c74000 20 12 12 读写--- [匿名] 00007f6a98c79000 140 116 0 rx--ld-2.19.so 00007f6a98e71000 12 12 12 读写--- [匿名] 00007f6a98e99000 8 8 8 rw--- [匿名] 00007f6a98e9b000 4 4 4 r---- ld-2.19.so 00007f6a98e9c000 4 4 4 rw---ld-2.19.so 00007f6a98e9d000 4 4 4 rw--- [匿名] 00007fff09fd0000 132 12 12 rw--- [堆栈] 00007fff09ffe000 8 4 0 rx--[匿名] ffffffffff600000 4 0 0 rx-- [匿名] ---------------- ------- ------- ------- 总KB 8652 656 96