GNU time如何测量进程资源占用?(Ubuntu/CentOS,非bash time)
GNU time(非bash内置)的资源统计原理与侵入性说明
针对Ubuntu和CentOS系统上的GNU time工具,它的资源统计逻辑和侵入性可以明确如下:
- 无主动采样/中断行为:GNU time不会通过周期性中断子进程、主动采样的方式收集数据,完全不会干扰被测命令的执行流程。
- 依赖内核预统计数据:它的所有统计信息(包括你关注的最大内存占用),都是在子进程执行完成后,通过系统接口读取内核已经自动记录好的进程资源数据。具体来说,是通过
wait4()系统调用获取rusage结构体数据,或是读取/proc文件系统中存储的进程实时/历史信息——这些数据是内核在进程运行期间被动记录的,不需要GNU time额外干预。 - 侵入性极低:由于只是读取内核已有的统计结果,GNU time对被测CI作业命令的性能、执行时序几乎没有影响,非常适合在CI环境中用来测量资源使用情况。
内容的提问来源于stack exchange,提问作者Marcin K
相关产品推荐
相关产品推荐

