欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计时函数clock()在windows及Linux下的使用

程序员文章站 2024-01-24 09:03:40
...
  • 函数:clock_t clock(void);
  • 所在头文件:<time.h>/<ctime>
  • 函数说明: 返回从开始程序进程到调用clock()之间的CPU时钟计时单元(clock tick)数,即硬件滴答数
  • 注意事项: 硬件滴答数需要换算成s或者ms,通过头文件time.h或者ctime中的CLOCKS_PER_SEC来实现,该值在windows下为1000,在标准POSIX下为1000000,即每过CLOCKS_PER_SEC个滴答数,即为1s

值得注意的是:该方法计时精度有限,连续运行几十天后会出现较大误差,因此,在长时间运行的系统上需要采用更高精度的计时方法才行!

案例1:windows平台

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
    clock_t start_,end_;
    start_=clock();                                       //程序开始计时
    double i=0;
    while(i<9999999)
        i++;
    end_=clock();                                         //程序结束用时
    double endtime=(double)(end_-start_)/CLOCKS_PER_SEC;  //硬件滴答数换算成时间
    cout<<"Total time:"<< endtime * 1000 << "ms" << endl; //ms为单位

    return 0;
}


案例2:ubuntu平台

#include <time.h>
#include <iostream>
using namespace std;
int main()
{
    clock_t start_,end_;
    start_=clock();										                //程序开始计时
    double i = 0;
    while(i<9999999)
        i++;
    end_=clock();											            //程序结束用时
    double endtime=(double)(end_-start_)/CLOCKS_PER_SEC;
    cout<<"Over time:"<< endtime * 1000<< "ms" << endl;	                //单位ms

    return 0;
}

参考文献: