C语言中如何输出显示程序的运行时间? 望赐教!

C语言中如何输出显示程序的运行时间? 望赐教!,第1张

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

#include "stdafx.h"

#include <windows.h>

#include <time.h>

#include  "process.h"

#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)endCount.QuadPart - (double)startCount.QuadPart) / (double)fre.QuadPart

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

    system("pause")

    return 0

}

主要就下面这几个函数,会用即可。

/* #include <time.h>

库函镇桐如数

1char *asctime(const struct tm *timeptr)

返回一个指向字符串的指针,它代表了结构 timeptr 的日期和时间。

2clock_t clock(void)

返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。

3char *ctime(const time_t *timer)

返回一个表示当地时间的字符串,当地时间是基于参数 timer。

4double difftime(time_t time1, time_t time2)

返回 time1 和 time2 之间相差的秒数 (time1-time2)。

5struct tm *gmtime(const time_t *timer)

timer 的值被分解为 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时轮侍间(GMT)表示。

6struct tm *localtime(const time_t *timer)

timer 的值被分解为 tm 结构,并用御启本地时区表示。

7time_t mktime(struct tm *timeptr)

把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。

8size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str 中。

9time_t time(time_t *timer)

计算当前日历时间,并把它编码成 time_t 格式。

*/


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

原文地址: http://outofmemory.cn/yw/12508521.html

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

发表评论

登录后才能评论

评论列表(0条)

保存