是否有一种工具可以运行命令行并报告峰值RAM使用总量?

我正在想象类似于/usr/bin/time的东西


当前回答

请务必回答这个问题。提供详细信息并分享您的研究!

对不起,我是第一次来这里,只能问问题。

使用建议:

valgrind --tool=massif --pages-as-heap=yes --massif-out-file=massif.out ./test.sh; grep mem_heap_B massif.out | sed -e 's/mem_heap_B=\(.*\)/\1/' | sort -g | tail -n 1

然后:

grep mem_heap_B massif.out
...
mem_heap_B=1150976
mem_heap_B=1150976
...

这与顶部命令在相同时刻所显示的非常不同:

14673 gu27mox   20   0 3280404 468380  19176 R 100.0  2.9   6:08.84 pwanew_3pic_com

Valgrind的测量单位是什么??

/usr/bin/time -v ./test.sh从来没有回答-你必须直接将可执行文件提供给/usr/bin/time:

/usr/bin/time -v  pwanew_3pic_compass_2008florian3_dfunc.static  card_0.100-0.141_31212_resubmit1.dat_1.140_1.180   1.140 1.180 31212


    Command being timed: "pwanew_3pic_compass_2008florian3_dfunc.static card_0.100-0.141_31212_resubmit1.dat_1.140_1.180 1.140 1.180 31212"

    User time (seconds): 1468.44
    System time (seconds): 7.37
    Percent of CPU this job got: 99%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 24:37.14
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 574844
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 74
    Minor (reclaiming a frame) page faults: 468880
    Voluntary context switches: 1190
    Involuntary context switches: 20534
    Swaps: 0
    File system inputs: 81128
    File system outputs: 1264
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

其他回答

使用Massif: http://valgrind.org/docs/manual/ms-manual.html

也许(gnu) time(1)已经做了您想要的。例如:

$ /usr/bin/time -f "%P %M" command
43% 821248

但其他分析工具可能会根据您正在寻找的内容提供更准确的结果。

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

这将大大降低您的命令速度。

请务必回答这个问题。提供详细信息并分享您的研究!

对不起,我是第一次来这里,只能问问题。

使用建议:

valgrind --tool=massif --pages-as-heap=yes --massif-out-file=massif.out ./test.sh; grep mem_heap_B massif.out | sed -e 's/mem_heap_B=\(.*\)/\1/' | sort -g | tail -n 1

然后:

grep mem_heap_B massif.out
...
mem_heap_B=1150976
mem_heap_B=1150976
...

这与顶部命令在相同时刻所显示的非常不同:

14673 gu27mox   20   0 3280404 468380  19176 R 100.0  2.9   6:08.84 pwanew_3pic_com

Valgrind的测量单位是什么??

/usr/bin/time -v ./test.sh从来没有回答-你必须直接将可执行文件提供给/usr/bin/time:

/usr/bin/time -v  pwanew_3pic_compass_2008florian3_dfunc.static  card_0.100-0.141_31212_resubmit1.dat_1.140_1.180   1.140 1.180 31212


    Command being timed: "pwanew_3pic_compass_2008florian3_dfunc.static card_0.100-0.141_31212_resubmit1.dat_1.140_1.180 1.140 1.180 31212"

    User time (seconds): 1468.44
    System time (seconds): 7.37
    Percent of CPU this job got: 99%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 24:37.14
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 574844
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 74
    Minor (reclaiming a frame) page faults: 468880
    Voluntary context switches: 1190
    Involuntary context switches: 20534
    Swaps: 0
    File system inputs: 81128
    File system outputs: 1264
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

在macOS上,可以改用DTrace。“Instruments”应用是一个很好的GUI,它带有XCode afaik。