是否有一种工具可以运行命令行并报告峰值RAM使用总量?
我正在想象类似于/usr/bin/time的东西
是否有一种工具可以运行命令行并报告峰值RAM使用总量?
我正在想象类似于/usr/bin/time的东西
当前回答
因为/usr/bin/time在许多现代发行版中都不存在(取而代之的是Bash内置时间),你可以使用Busybox time实现带-v参数:
busybox time -v uname -r
它的输出类似于GNU时间输出。 Busybox在大多数Linux发行版(Debian, Ubuntu等)中都是预安装的。如果你使用Arch Linux,你可以安装它:
sudo pacman -S busybox
其他回答
Heaptrack是一个具有GUI和文本界面的KDE工具。我发现它比valgrind更适合了解进程的内存使用情况,因为它提供了更多细节和火焰图。它还更快,因为它检查valgrind的次数更少。它会给你最大的内存使用量。
不管怎样,跟踪rss和vss是误导的,因为页面可以共享,这就是为什么memusg。你真正应该做的是跟踪/proc/[pid]/smaps中Pss的和或使用pmap。GNOME系统监视器曾经这样做,但它太昂贵了。
好吧,如果你真的想显示内存峰值和一些更深入的统计数据,我建议使用一个分析器,如valgrind。一个很好的valgrind前端是alleyoop。
'htop'是查看哪个进程使用了多少RAM.....的最佳命令
欲知详情 http://manpages.ubuntu.com/manpages/precise/man1/htop.1.html
这里有一个单行程序,不需要任何外部脚本或实用程序,也不需要你通过Valgrind或time等其他程序启动进程,所以你可以将它用于任何已经运行的进程:
grep ^VmPeak /proc/$PID/status
(将$PID替换为您感兴趣的进程的PID)
time -f '%M' <run_program>