我想在bash
Cygwin 中运行一个进程,以便在执行后获得一些简短的摘要,例如峰值内存使用率或平均 CPU 使用率,time
但包含更多信息。
有什么选择吗?
答案1
您可以通过在 GNU 中运行命令来完成此操作
time
。默认情况下,时间显示real
(挂钟)、user
(用户模式中使用的 CPU 秒)和sys
(内核模式中使用的 CPU 秒)数据项。但是,您还可以要求它测量其他内容,例如 RAM 和磁盘使用情况:/usr/bin/time -f "File system outputs: %O\nMaximum RSS size: %M\nCPU percentage used: %P" <command>
其中
<command>
替换为您要运行的命令。输出将类似于:File system outputs: 18992 Maximum RSS size: 40056 CPU percentage used: 367%
其中“CPU 使用百分比”是一个百分比,显示使用了 3.6 个核心,“最大 RSS 大小”与“使用的最大内存”最接近,以千字节为单位表示,“文件系统输出”以千字节为单位表示操作数(即,它没有说明写入了多少数据)。您给出的
du
和df
命令应该有帮助。注:你需要使用
/usr/bin/time
而不是仅仅使用time
,因为许多 shell 都将其作为内置选项,但不一定支持该-f
选项。有关更多信息,请参阅
man time
https://unix.stackexchange.com/a/331707/213127
Cygwin 也是如此:有一个内置的 bash,可以用 GNU 时间代替。