如何确定程序使用的最大内存?

时间:2017-09-14 18:30:39

标签: performance memory command freebsd measure

我打算编写一个Perl程序,该程序将对少量关于100MB内存的数据进行相应的初步基准测试。我想更精确地了解使用的内存量。

如何确定Perl脚本使用的内存量?

应该有一些命令(它的名字printmaxmemoryuse由我组成):

printmaxmemoryuse perl myscript.pl

我们在FreeBSD上。

1 个答案:

答案 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

此外,您可以将topcmdwatch结合使用,例如:

cmdwatch -n1 'top -d 1 | grep 847'