Linux C进程时间:墙上时钟时间,用户CPU时间,系统CPU时钟时间
Posted 明明1109
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux C进程时间:墙上时钟时间,用户CPU时间,系统CPU时钟时间相关的知识,希望对你有一定的参考价值。
如何度量进程的运行时间?
可以用times函数获取进程的墙上时钟时间,用户CPU时间,系统CPU时钟时间。
墙上时钟时间
墙上时钟时间 wall clock time: 又简称时钟时间,从进程开始运行到结束,系统时钟走过的时间(时钟数),包含了进程阻塞、等待的时间。
每秒钟嘀嗒数, 可通过sysconf(_SC_CLK_TCK)
获取
用户CPU时间
用户CPU时间:用户进程在用户态执行时间。
系统CPU时间
系统CPU时间:用户进程在内核态执行时间。
三者之间关系
时钟时间 = 阻塞时间 + 就绪时间 + 运行时间
运行时间 = 用户CPU时间 + 系统CPU时间
times函数
原型
#include <sys/times.h>
clock_t times(struct tms *buf);
tms结构:
struct tms {
clock_t tms_utime; /* user CPU time */
clock_t tms_stime; /* system CPU time */
clock_t tms_cutime; /* user CPU time,terminated children */
clock_t tms_cstime; /* system CPU time,terminated children */
};
功能
获取进程墙上时钟时间,用户CPU时间,系统CPU时钟时间
返回值
1.函数返回墙上时钟时间。
进程开始和结束时,可以分别获取到2个返回值,做差值即为进程的墙上时钟时间。运行时间足够长可能溢出(可能性较小)
2.输出参数buf,包含用户CPU时间,系统CPU时间。
示例
参考
以上是关于Linux C进程时间:墙上时钟时间,用户CPU时间,系统CPU时钟时间的主要内容,如果未能解决你的问题,请参考以下文章