是否有一种工具可以运行命令行并报告峰值RAM使用总量?
我正在想象类似于/usr/bin/time的东西
是否有一种工具可以运行命令行并报告峰值RAM使用总量?
我正在想象类似于/usr/bin/time的东西
当前回答
在macOS上,可以改用DTrace。“Instruments”应用是一个很好的GUI,它带有XCode afaik。
其他回答
[编辑:适用于Ubuntu 14.04: /usr/bin/time -v命令确保使用完整路径。]
看起来/usr/bin/time确实给了你这个信息,如果你输入-v(这是在Ubuntu 8.10上)。例如,参见下面的最大常驻集大小:
$ /usr/bin/time -v ls / .... Command being timed: "ls /" User time (seconds): 0.00 System time (seconds): 0.01 Percent of CPU this job got: 250% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 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): 0 Average resident set size (kbytes): 0 Major (requiring I/O) page faults: 0 Minor (reclaiming a frame) page faults: 315 Voluntary context switches: 2 Involuntary context switches: 0 Swaps: 0 File system inputs: 0 File system outputs: 0 Socket messages sent: 0 Socket messages received: 0 Signals delivered: 0 Page size (bytes): 4096 Exit status: 0
'htop'是查看哪个进程使用了多少RAM.....的最佳命令
欲知详情 http://manpages.ubuntu.com/manpages/precise/man1/htop.1.html
(这是一个已经回答了的老问题。但只是为了记录:)
我受到杨的剧本的启发,想出了这个小工具,名叫memusg。我只是将采样率提高到0.1,以处理更短的生存过程。我没有监视单个进程,而是让它测量进程组的rss和。(是的,我写了很多独立的程序一起工作)它目前在Mac OS X和Linux上工作。用法必须和time的用法相似:
memusg ls -alR / >/dev/null
它只显示了目前的峰值,但我对记录其他(粗略)统计数据的轻微扩展感兴趣。
在我们开始任何严肃的分析之前,有这样一个简单的工具来查看是很好的。
在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
. . .
在macOS上,可以改用DTrace。“Instruments”应用是一个很好的GUI,它带有XCode afaik。