Linux下使用clock_gettime给程序计时 转载
2014-03-17 18:50
483 查看
http://www.cnblogs.com/daqiwancheng/archive/2010/07/01/1769522.html
哦,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用来存储当前的时间,其结构如下:
1 struct timespec {
2 time_t tv_sec; /* seconds */
3 long tv_nsec; /* nanoseconds */
4 };
呵呵,好啦!该讲的都刚清楚了,下面我们就上代码把;
代码
1 #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给程序计时
哦,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用来存储当前的时间,其结构如下:
1 struct timespec {
2 time_t tv_sec; /* seconds */
3 long tv_nsec; /* nanoseconds */
4 };
呵呵,好啦!该讲的都刚清楚了,下面我们就上代码把;
代码
1 #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给程序计时
- 转载_使用DDD+GDB开发ARM Linux程序
- <转载>linux gcc编译器中使用gdb单步调试程序,程序不是顺序执行的。
- (转载) 如何在Linux使用Eclipse + CDT开发C/C++程序? (OS) (Linux) (C/C++) (gcc) (g++)
- 《使用 C++11 编写 Linux 多线程程序(转载收藏)》
- clock_gettime的使用,计时比clock()精确
- 【嵌入式linux】(第六步):使用eclipse集成开发环境开发第一个嵌入式Linux程序,并测试LED驱动
- 使用 CustomScript 扩展程序自动执行 Linux 虚拟机自定义任务
- Linux下使用GDB调试程序
- Linux下使用pdb简单调试python程序
- 使用Gnu gprof进行Linux平台下的程序分析
- 关于windows下使用putty+Xming远程访问linux程序的中文输入问题
- 【Linux】使用vim编写一个程序,gcc查看预处理、编译、汇编、链接过程
- 转载_Linux下的换行符\n\r以及txt和word文档的使用
- 【转载】linux tail命令的使用方法详解
- 我使用过的Linux命令之hexdump - ”十六“进制查看器(转载)