Linux下使用clock_gettime给程序计时
2011-07-19 11:52
666 查看
clock_gettime( ) 提供了纳秒的精确度,给程序计时可是不错哦;
函数的原型如下:
int clock_gettime(clockid_t clk_id, struct timespect *tp);clockid_t clk_id用于指定计时时钟的类型,对于我们Programmr以下三种比较常用:CLOCK_REALTIME, a system-wide realtime clock.CLOCK_PROCESS_CPUTIME_ID, high-resolution timer provided by the CPU for each process.CLOCK_THREAD_CPUTIME_ID, high-resolution timer provided by the CPU for each of the threads.CLOCK_REALTIME, a system-wide realtime clock.CLOCK_PROCESS_CPUTIME_ID, high-resolution timer provided by the CPU for each process.CLOCK_THREAD_CPUTIME_ID, high-resolution timer provided by the CPU for each of the threads.struct timespect *tp用来存储当前的时间,其结构如下: struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};代码;#include <iostream>
2 #include <time.h>
3 using namespace std;
4
5 timespec diff(timespec start, timespec end);
6
7 int main()
8 {
9 timespec time1, time2;
10 int temp;
11 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
12 for (int i = 0; i< 242000000; i++)
13 temp+=temp;
14 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
15 cout<<diff(time1,time2).tv_sec<<":"<<diff(time1,time2).tv_nsec<<endl;
16 return 0;
17 }
18
19 timespec diff(timespec start, timespec end)
20 {
21 timespec temp;
22 if ((end.tv_nsec-start.tv_nsec)<0) {
23 temp.tv_sec = end.tv_sec-start.tv_sec-1;
24 temp.tv_nsec = 1000000000+end.tv_nsec-start.tv_nsec;
25 } else {
26 temp.tv_sec = end.tv_sec-start.tv_sec;
27 temp.tv_nsec = end.tv_nsec-start.tv_nsec;
28 }
29 return temp;
30 }
函数的原型如下:
int clock_gettime(clockid_t clk_id, struct timespect *tp);clockid_t clk_id用于指定计时时钟的类型,对于我们Programmr以下三种比较常用:CLOCK_REALTIME, a system-wide realtime clock.CLOCK_PROCESS_CPUTIME_ID, high-resolution timer provided by the CPU for each process.CLOCK_THREAD_CPUTIME_ID, high-resolution timer provided by the CPU for each of the threads.CLOCK_REALTIME, a system-wide realtime clock.CLOCK_PROCESS_CPUTIME_ID, high-resolution timer provided by the CPU for each process.CLOCK_THREAD_CPUTIME_ID, high-resolution timer provided by the CPU for each of the threads.struct timespect *tp用来存储当前的时间,其结构如下: struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};代码;#include <iostream>
2 #include <time.h>
3 using namespace std;
4
5 timespec diff(timespec start, timespec end);
6
7 int main()
8 {
9 timespec time1, time2;
10 int temp;
11 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
12 for (int i = 0; i< 242000000; i++)
13 temp+=temp;
14 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
15 cout<<diff(time1,time2).tv_sec<<":"<<diff(time1,time2).tv_nsec<<endl;
16 return 0;
17 }
18
19 timespec diff(timespec start, timespec end)
20 {
21 timespec temp;
22 if ((end.tv_nsec-start.tv_nsec)<0) {
23 temp.tv_sec = end.tv_sec-start.tv_sec-1;
24 temp.tv_nsec = 1000000000+end.tv_nsec-start.tv_nsec;
25 } else {
26 temp.tv_sec = end.tv_sec-start.tv_sec;
27 temp.tv_nsec = end.tv_nsec-start.tv_nsec;
28 }
29 return temp;
30 }
相关文章推荐
- Linux 下使用clock_gettime给程序计时详解
- Linux下使用clock_gettime给程序计时
- Linux下使用clock_gettime给程序计时
- Linux下使用clock_gettime给程序计时
- Linux下使用clock_gettime给程序计时 转载
- clock_gettime的使用,计时比clock()精确
- Linux平台下基于C语言使用gSOAP开发Web Service服务端和客户端程序
- linux网络编程之socket(九):使用select函数改进客户端/服务器端程序
- Android 运行 C/C++程序 (使用 arm-linux-gcc 交叉编译环境)
- 关于linux驱动(应用)程序头文件使用
- 如何使用linux程序mdadm创建软件RAID1软阵列
- Linux环境下使用eclipse开发C++动态链接库程序
- 一些linux应用小技巧,网络相关,系统管理,shell,程序使用
- 程序实践系列之使用封装类用于计时
- Linux下使用nohup让一个程序在退出登陆后继续运行
- 使用 Linux 自带的 logrotate 程序来控制日志文件尺寸
- linux下运行exe程序之wine的使用与安装
- Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序
- Linux下使用函数打印程序堆栈错误的方法
- 总结UNIX/LINUX下C++程序计时的方法