是否有一个工具可以运行命令行并报告峰值RAM使用总量?
我在想象类似于/ usr / bin / time的东西
#1楼
Valgrind单线:
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
#2楼
如果进程运行至少几秒钟,那么您可以使用以下bash脚本,它将运行给定的命令行,然后打印到stderr峰值RSS(替换rss您感兴趣的任何其他属性)。 它有点轻量级,它适用于我使用Ubuntu 9.04中包含的ps (我不能说time )。
#!/usr/bin/env bash
"$@" & # Run the given command line in the background.
pid=$! peak=0
while true; do
sleep 1
sample="$(ps -o rss= $pid 2> /dev/null)" || break
let peak='sample > peak ? sample : peak'
done
echo "Peak: $peak" 1>&2
#3楼
(这是一个已经回答的老问题..但仅仅是为了记录:)
我受到杨的剧本的启发,并提出了这个名为memusg的小工具。 我只是将采样率提高到0.1来处理很短的生活过程。 我没有监控单个进程,而是测量进程组的rss总和。 (是的,我写了很多单独的程序一起工作)它目前适用于Mac OS X和Linux。 用法必须是类似的time :
memusg ls -alR / >/dev/null
它只显示当前的峰值,但我对记录其他(粗略)统计数据的轻微扩展感兴趣。
在我们开始任何严肃的分析之前,有这么简单的工具来看看它是很好的。
#4楼
在MacOS Sierra上使用:
/usr/bin/time -l commandToMeasure
您可以使用grep来获取您想要的内容。
#5楼
'htop'是最好的命令,看看哪个进程正在使用多少内存.....
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3176263