程序运行时间测试 - 使用系统函数 getrusage 获…
2019-08-19 08:47:26来源:博客园 阅读 ()
程序运行时间测试 - 使用系统函数 getrusage 获取程序运行时间
https://github.com/yaowenxu/Workplace/blob/master/timer/getrusagetimer.c
关键结构体:
struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; /* max resident set size */ long ru_ixrss; /* integral shared text memory size */ long ru_idrss; /* integral unshared data size */ long ru_isrss; /* integral unshared stack size */ long ru_minflt; /* page reclaims */ long ru_majflt; /* page faults */ long ru_nswap; /* swaps */ long ru_inblock; /* block input operations */ long ru_oublock; /* block output operations */ long ru_msgsnd; /* messages sent */ long ru_msgrcv; /* messages received */ long ru_nsignals; /* signals received */ long ru_nvcsw; /* voluntary context switches */ long ru_nivcsw; /* involuntary context switches */ };
程序:
/** * Author: Yaowen Xu * Github: https://github.com/yaowenxu * Organization: 北航系统结构研究所 * Date: 2019-08-18 13:31:34 * LastEditTime: 2019-08-18 13:51:26 * Description: 使用系统 函数 getrusage 获取程序运行相关信息 * 此程序主要是关注与总时间和内核空间运行时间与用户 * 空间运行时间,使用此函数可大致对程序运行时间计算; * 查看: 具体使用信息可以在控制台以 man getrusage 命令查看 */ #include <stdio.h> #include <math.h> #include <sys/time.h> #include <sys/resource.h> int str2int(char* str){ char *p = str; int sum = 0; while (*p != '\0') { sum = sum*10 + (*p-'0'); p++; } return sum; } int main(int argc, char* argv[]){ int def = 1000; if (argc == 2) { def = str2int(argv[argc-1]); } for (int i = 0; i < def ; i++) { float tmp = sqrt(i); } struct rusage usage; getrusage(RUSAGE_SELF, &usage); //getrusage(RUSAGE_CHILDREN, &usage); long user = usage.ru_utime.tv_sec * 1000000 + usage.ru_utime.tv_usec; // user time used long sys = usage.ru_stime.tv_sec * 1e6 + usage.ru_stime.tv_usec; // sys time used printf("User: %ld us\n", user); // 用户空间使用的时间 printf("Sys: %ld us\n", sys); // 内核空间使用的时间 printf("Total: %ld us\n", user+sys); // 总共使用的时钟 return 0; }
保持更新,如果对您有帮助请点击推荐!更多关于Linux 相关的知识,请关注 cnblogs.com/xuyaowen
原文链接:https://www.cnblogs.com/xuyaowen/p/c-sys-getrusage.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- 运行 docker .... 命令报错 2020-06-10
- MPI 本地局域网运行多机配置,同时运行多个程序; 2020-06-02
- 由java程序引起的一次系统崩溃 2020-05-27
- 如何重复执行一条命令直至运行成功? 2020-05-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash