Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313672
  • 博文数量: 82
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-13 10:58
文章分类

全部博文(82)

文章存档

2018年(2)

2017年(9)

2016年(71)

我的朋友

分类: 嵌入式

2016-09-11 18:10:43

1.计算时间
(1)计算cpu占用的时间

  1. #include<iostream>
  2. #include<ctime> 
  3. void main()
  4. {
  5.    clock_t start,finish;
  6.    double totaltime;
  7.    start=std::clock(); 

  8.    测试的代码...

  9.    finish=std::clock();
  10.    totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
  11.    std::cout << totaltime << std::endl;
  12. }
  这个只能测试代码占用cpu的时间,不是测试的代码从运行到执行完的时间,因为期间有可能被挂起。打印了一下,发现CLOCKS_PER_SEC是1000000,即1s有1000000个时钟,所以只能精确到us级别。调试的时候还发现,clock()是10000增长的,很奇怪,这样就只能精确到毫秒级别了, 我用的是CentOS6.6。

(2)计算从开始到程序执行到某个位置的时间,包括被挂起的时间

  1. #include <stdio.h>
  2. #include <sys/time.h>
  3. long getCurrentTime()
  4. {
  5.    struct timeval tv;
  6.    gettimeofday(&tv,NULL);
  7.    return tv.tv_sec * 1000000 + tv.tv_usec;
  8. }
  这个精确到了us,感觉应该还有其它方法吧,没研究过。

2.睡眠函数
(1)sleep()精确到s,usleep()精确到us,头文件为unistd.h 
阅读(1306) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~