您尚未登录。

楼主 #1 2020-10-21 11:48:02

redstar
会员
注册时间: 2020-08-30
已发帖子: 2
积分: 2

请问linux平台下有没什么api能够获取当前进程用了多少内存的

请问linux平台下有没什么api能够获取当前进程用了多少内存的

离线

#2 2020-10-21 11:49:29

农夫三拳
会员
注册时间: 2020-10-09
已发帖子: 3
积分: 3

Re: 请问linux平台下有没什么api能够获取当前进程用了多少内存的

http://hutaow.com/blog/2014/08/28/display-process-memory-in-linux/

VmPeak	进程所使用的虚拟内存的峰值
VmSize	进程当前使用的虚拟内存的大小
VmLck	已经锁住的物理内存的大小(锁住的物理内存不能交换到硬盘)
VmHWM	进程所使用的物理内存的峰值
VmRSS	进程当前使用的物理内存的大小
VmData	进程占用的数据段大小
VmStk	进程占用的栈大小
VmExe	进程占用的代码段大小(不包括库)
VmLib	进程所加载的动态库所占用的内存大小(可能与其它进程共享)
VmPTE	进程占用的页表大小(交换表项数量)
VmSwap	进程所使用的交换区的大小

举例
显示进程cron的内存信息,通过pidof cron获取进程ID,或者通过ps -aux | grep cron查找进程ID。

$ cat /proc/1161/status
Name:   cron
State:  S (sleeping)
Tgid:   1161
Ngid:   0
Pid:    1161
PPid:   1
TracerPid:  0
Uid:    0   0   0   0
Gid:    0   0   0   0
FDSize: 64
Groups: 0 
VmPeak:    23792 kB
VmSize:    23656 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      1040 kB
VmRSS:      1004 kB
VmData:      260 kB
VmStk:       136 kB
VmExe:        40 kB
VmLib:      2668 kB
VmPTE:        72 kB
VmSwap:        0 kB
Threads:    1
SigQ:   0/15442
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000010001
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
Seccomp:    0
Cpus_allowed:   3
Cpus_allowed_list:  0-1
Mems_allowed:   00000000,00000001
Mems_allowed_list:  0
voluntary_ctxt_switches:    151
nonvoluntary_ctxt_switches: 0

离线

#3 2020-10-22 11:47:00

JasonWoo
会员
注册时间: 2019-06-04
已发帖子: 84
积分: 55.5

Re: 请问linux平台下有没什么api能够获取当前进程用了多少内存的

sysinfo

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn