关于C语言程序设计的计时器

关于C语言程序设计的计时器,第1张

C语言中的头文件timeh中定义了库函数clock(),

它返回的是从程序运行开始算起的时间,一时钟周期为单位,

timeh还定义了符号:CLOCKS_PER_SEC,

即一秒钟的时钟周期。这样就简单了,

在头文件中加入#include<timeh>,在程序main()主函数的开头定义long now=0;

并给把clock()赋值给now,即now=clock();记录程序开始时的时间,clock()会继续增加,

但now已经确定为开始那一时刻clock()的值,

在程序结尾,算式clock()-now就是程序执行所需的时间,

但是是以时钟周期为单位的,

如果想得到以秒为单位的时间只要输出(clock()-now)/CLOCKS_PER_SEC就是了,

即在程序结尾添加

printf("%f",(clock()-now)/CLOCKS_PER_SEC);就可以了。

//timeh头文件中定义了常用的时间函数

//time_t是系统定义的一个数据类型,为长整型,用来存储时间

//因为其中一些函数获得的时间是公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。

//可以将那个秒数转化为我们日常用的公历时间,这个你看看那些函数说明就自己能用了

//difftime()用来计算两次时间差(单位是秒)

//time()用来获取时间

#include <iostream>

#include <timeh>

#include <conioh>

using namespace std;

int main(void)

{

time_t t_start,t_end;

t_start = time(NULL) ;

cout<<"按任意键继续"<<endl;

getch();

t_end = time(NULL) ;

cout<<difftime(t_end,t_start)<<endl;

return 0;

}

用结构选板里面的-定时结构-定时循环,这个控件比较复杂,但是是许多工业控制程序必用的时间控制结构,精确而且功能多,刷新时间都可以自行设定,默认就是1s。它不管程序里面其他结构如何运行,它计算的就是从程序第一次运行以来所用掉的时间,当然结合其他的控件比如“已用时间控件”或者结合文件的 *** 作会让它更强大,有问题可以交流

共勉,我也在学习阶段。

#include <timeh>

#include <stdioh>

int main(void) {

    //nano time

    struct timespec ts1,ts2,ts3,ts4,ts5;

    int err;

    

    err = clock_gettime(CLOCK_REALTIME,&ts1);

    if(err < 0) {

        return 1;

    }   

    printf("ts1 nano:%di\n",ts1tv_nsec);

    err = clock_gettime(CLOCK_REALTIME,&ts2);

    if(err < 0) {

        return 1;

    }   

    printf("ts2 nano:%d\n",ts2tv_nsec);

    printf("nano:ts2-ts1=%d\n",ts2tv_nsec-ts1tv_nsec);

    err = clock_gettime(CLOCK_MONOTONIC,&ts3);

    if(err < 0) {

        return 1;

    }   

    printf("system started time nano:%d\n",ts3tv_nsec);

    

    err = clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&ts4);

    if(err < 0) {

        return 1;

    }   

    printf("process cpu time nano:%d\n",ts4tv_nsec);

    err = clock_gettime(CLOCK_THREAD_CPUTIME_ID,&ts5);

    if(err < 0) {

        return 1;

    }   

    printf("thread cup time  nano:%d\n",ts5tv_nsec);

    return 0;

}

BOOL QueryPerformanceFrequency(LARGE_INTEGER lpFrequency);可以返回硬件支持的高精度计数器的频率。先调用QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。接着在需要严格计时的事件发生前和发生之后分别调用QueryPerformanceCounter(),利用两次获得的计数之差和时钟频率,就可以计算出事件经历的精确时间。

#include "stdafxh"

#include <windowsh>

#include <timeh>

#include  "processh"

#define random(x) (rand()%x)

int _tmain(int argc, _TCHAR argv[])

{

    LARGE_INTEGER fre = { 0 };  //储存本机CPU时钟频率

    LARGE_INTEGER startCount = { 0 };

    LARGE_INTEGER endCount = { 0 };

    QueryPerformanceFrequency(&fre);//获取本机cpu频率

    //开始计时

    QueryPerformanceCounter(&startCount);

    //运算

    

    for (int i = 0; i < 10000000; i++)

    {

        float fTem1 = random(100)random(1000)random(10000)random(100000);

    }

    //结束计时

    QueryPerformanceCounter(&endCount);

    //计算时间差

    double dTimeTake = ((double)endCountQuadPart - (double)startCountQuadPart) / (double)freQuadPart;

    printf("用时%f\n", dTimeTake);

    system("pause");

    return 0;

}

//timeh头文件中定义了常用的时间函数

//time_t是系统定义的一个数据类型,为长整型,用来存储时间

//因为其中一些函数获得的时间是公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。

//可以将那个秒数转化为我们日常用的公历时间,这个你看看那些函数说明就自己能用了

//difftime()用来计算两次时间差(单位是秒)

//time()用来获取时间

#include <iostream>

#include <timeh>

#include <conioh>

using namespace std;

int main(void)

{

time_t t_start,t_end;

t_start = time(NULL) ;

cout<<"按任意键继续"<<endl;

getch();

t_end = time(NULL) ;

cout<<difftime(t_end,t_start)<<endl;

return 0;

}

以上就是关于关于C语言程序设计的计时器全部的内容,包括:关于C语言程序设计的计时器、C++如何实现计时功能、labview中如何准确计时,就是说统计程序运行所用的秒数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10136332.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存