如何监视一段时间内可执行文件的所有执行

如何监视一段时间内可执行文件的所有执行

我知道如何监控过程。诸如此类的命令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 时间不计入父进程)

相关内容