zoukankan      html  css  js  c++  java
  • CC++中计时、延时函数

    转载:https://blog.csdn.net/keith_bb/article/details/53055380

    CC++标准库中提供了两种计时函数clock()和time()。其用法如下:
    (1)clock()函数用法

    void timeConsume()
    {
    double start,stop,durationTime;
    start = clock();
    /*

    ...代码片段

    */
    stop = clock();

    durationTime = ((double)(stop-start))/CLK_TCK;
    cout << "程序耗时:" << durationTime << " s" << endl;
    }

    clock()函数返回值类型为clock_t.该函数计算结果是以内部处理器时间为计量单位的,所以必须把它除以时钟频率,从而得到以秒为单位的时间。这种方法在机器上测量的很精确。在这里Windows和Linux环境下会有所区别.
    Linux环境下,处理器内部时间频率为:CLOCKS_PER_SEC.

    (2)time()函数用法

    void timeConsume()
    {
    double start,stop,durationTime;
    start = time(NULL);
    /*

    ...代码片段

    */
    stop = time(NULL);

    durationTime = (double)difftime(stop, start);
    cout << "程序耗时:" << durationTime << " s" << endl;
    }

    time()函数返回值类型为time_t,所以也需要在输出前将其转换为double类型。与clock不同的是time()函数有一个参数,用来说明存放时间信息的位置。由于并不想保存这个时间,所以将参数设置为NULL。但是这种计时方法不如clock()函数精确,但是它不需要有关时钟频率的信息。

    (3)延时函数

    在标准库中可以使用Sleep()函数进行延时,其单位是毫秒,如果想要延迟5秒则其方法如下:

    Sleep(5*1000);

    在MFC中也可以使用_sleep()函数进行实现延时功能。在Windows环境下,Sleep()函数首字母大写,而在Linux系统下sleep()函数首字母要小写。在Linux系统中sleep()函数的单位是秒而不是毫秒,而在Windows环境下Sleep()函数是以毫秒为单位。这是两者之间的区别。

    Windows环境下计时延时函数代码如下:

    #include <iostream>
    #include <Windows.h>

    using namespace std;
    int main()
    {
    double start, stop, durationTime;
    start = clock();

    Sleep(5 * 1000); //程序延时5s
    stop = clock();
    durationTime = ((double)(stop - start)) / CLK_TCK;
    cout << "总耗时:" << durationTime << endl << endl;
    return 0;
    }

    运行结果如图所示:


    Linux环境下代码如下:

    #include <iostream>
    #include <unistd.h>

    using namespace std;

    int main()
    {
    double startTime,stopTime,durationTimeTime;

    startTime=time(NULL);

    sleep(5);

    stopTime=time(NULL);

    durationTimeTime = (double)difftime(stopTime,startTime);

    cout << "耗时(time): " << durationTimeTime << " s" << endl;


    return 0;


    运行结果如图所示:


    感兴趣的小伙伴可以在Linux环境下试一下clock()函数,目瞪口呆!!!
    ————————————————
    版权声明:本文为CSDN博主「梧桐栖鸦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/keith_bb/article/details/53055380

  • 相关阅读:
    LeetCode 42. Trapping Rain Water
    LeetCode 209. Minimum Size Subarray Sum
    LeetCode 50. Pow(x, n)
    LeetCode 80. Remove Duplicates from Sorted Array II
    Window10 激活
    Premiere 关键帧缩放
    AE 「酷酷的藤」特效字幕制作方法
    51Talk第一天 培训系列1
    Premiere 视频转场
    Premiere 暴徒生活Thug Life
  • 原文地址:https://www.cnblogs.com/MCSFX/p/13265000.html
Copyright © 2011-2022 走看看