是否有一种工具可以运行命令行并报告峰值RAM使用总量?
我正在想象类似于/usr/bin/time的东西
是否有一种工具可以运行命令行并报告峰值RAM使用总量?
我正在想象类似于/usr/bin/time的东西
当前回答
/usr/bin/time可能是你想要的。喜欢的东西。
/usr/bin/time --format='(%Xtext+%Ddata %Mmax)'
详见第(1)段。
其他回答
你可以使用Valgrind这样的工具来做到这一点。
在Linux上:
使用/usr/bin/time -v <program> <args>查找“最大常驻集大小”。
(不要与Bash time内置命令混淆!所以使用完整路径,/usr/bin/time)
例如:
> /usr/bin/time -v ./myapp
User time (seconds): 0.00
. . .
Maximum resident set size (kbytes): 2792
. . .
在BSD、MacOS上:
使用/usr/bin/time -l <program> <args>,查找“最大常驻集大小”:
>/usr/bin/time -l ./myapp
0.01 real 0.00 user 0.00 sys
1440 maximum resident set size
. . .
Valgrind一行程序:
Valgrind——tool=massif——pages-as-heap=yes——massif-out-file=massif。出去。/ test.sh;grep mem_heap_B massif。出| sed - e ' s / mem_heap_B = \(. * \) / \ 1 /“| - g | tail - n 1
注意使用——pages-as-heap来测量进程中的所有内存。更多信息请访问:http://valgrind.org/docs/manual/ms-manual.html
这将大大降低您的命令速度。
也许(gnu) time(1)已经做了您想要的。例如:
$ /usr/bin/time -f "%P %M" command
43% 821248
但其他分析工具可能会根据您正在寻找的内容提供更准确的结果。
在MacOS Sierra上使用:
/usr/bin/time -l commandToMeasure
你可以用grep获取你想要的。