我打算编写一个Perl程序,该程序将对少量关于100MB内存的数据进行相应的初步基准测试。我想更精确地了解使用的内存量。
如何确定Perl脚本使用的内存量?
应该有一些命令(它的名字printmaxmemoryuse
由我组成):
printmaxmemoryuse perl myscript.pl
我们在FreeBSD上。
答案 0 :(得分:3)
在FreeBSD中,您可以使用procstat获取有关该流程的详细信息。例如,获取进程正在消耗的内存:
procstat -r <PID>
示例输出:
# procstat -r 847
PID COMM RESOURCE VALUE
847 immortal user time 00:00:09.842315
847 immortal system time 00:00:26.680180
847 immortal maximum RSS 9884 KB
847 immortal integral shared memory 11960644 KB
847 immortal integral unshared data 1685608 KB
847 immortal integral unshared stack 573824 KB
847 immortal page reclaims 1126497
847 immortal page faults 176
847 immortal swaps 0
847 immortal block reads 57
847 immortal block writes 356464
847 immortal messages sent 13712
847 immortal messages received 2
847 immortal signals received 13708
847 immortal voluntary context switches 272454
847 immortal involuntary context switches 14765
此外,您可以将top
与cmdwatch结合使用,例如:
cmdwatch -n1 'top -d 1 | grep 847'