1,在要查看的代码段之前加阻塞代码:scanf("%d",&tmp);//阻塞测试
int tmp;
scanf("%d",&tmp);//阻塞测试
2,运行程序,再ps查查进程id,这里pid查到是20878.
[root@Ingenic-uc1_1:~]# ./sample-personDet &
[root@Ingenic-uc1_1:~]# ps
20878 root 98284 S ./sample-personDet
3,查看内存占用情况
cat /proc/20878/status
Name: sample-personDe
State: S (sleeping)
Tgid: 20878
Pid: 20878
PPid: 57
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups:
VmPeak: 87676 kB
VmSize: 87676 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 1480 kB
VmRSS: 1480 kB
VmData: 49864 kB
VmStk: 136 kB
VmExe: 2756 kB
VmLib: 1912 kB
VmPTE: 68 kB
VmSwap: 0 kB
Threads: 7
SigQ: 0/209
SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000000000000
SigIgn: 00000000000000000000000000000000
SigCgt: 00000000000000000000000180000000
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
Seccomp: 0
Cpus_allowed: 1
Cpus_allowed_list: 0
voluntary_ctxt_switches: 115
nonvoluntary_ctxt_switches: 21
4,随便输入一个数字回车,再查看内存占用情况
cat /proc/20878/status
Name: sample-personDe
State: S (sleeping)
Tgid: 20878
Pid: 20878
PPid: 57
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups:
VmPeak: 98672 kB
VmSize: 97480 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 5560 kB
VmRSS: 4392 kB
VmData: 59668 kB
VmStk: 136 kB
VmExe: 2756 kB
VmLib: 1912 kB
VmPTE: 76 kB
VmSwap: 0 kB
Threads: 8
SigQ: 0/209
SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000000000000
SigIgn: 00000000000000000000000000000000
SigCgt: 00000000000000000000000180000000
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
Seccomp: 0
Cpus_allowed: 1
Cpus_allowed_list: 0
voluntary_ctxt_switches: 180
nonvoluntary_ctxt_switches: 30
5,前后VmHWM值相减,即得出要测试的代码段用了多少内存: VmHWM: 5560 kB - 1480 kB= 4080kB