我知道如何监控过程。诸如此类的命令top
可以监视给定流程实例的 CPU 时间和内存使用情况。
但是假设我希望给定的可执行文件在接下来的一个小时内运行多次,并且我想测量它运行的次数以及它消耗的 CPU 时间。有什么命令可以做到这一点?
答案1
你可以这样做:
mv my-executable my-executable.bin
并创建my-executable
一个包装脚本,该脚本执行以下操作:
#! /bin/bash -
{ time "$0.bin" "$@" 2>&3 3>&-; } 3>&2 2>> /tmp/times.log
该脚本可以向日志添加更多信息,例如启动时间、由谁、传递的参数......
BSD 进程统计,至少在 Linux 上确实报告 CPU 时间(用户 + 系统),但不是像那样以累积方式time
(子进程 CPU 时间不计入父进程)