ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux C进程时间:墙上时钟时间,用户CPU时间,系统CPU时钟时间

2021-05-27 02:05:06  阅读:220  来源: 互联网

标签:tms clock 用户 时间 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时间。

示例

参考

墙上时钟时间 ,用户cpu时间 ,系统cpu时间 | 知乎

标签:tms,clock,用户,时间,CPU,时钟
来源: https://www.cnblogs.com/fortunely/p/14779041.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有