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

  • 相关阅读:
    跨平台的好处
    Java生成PDF的另一种方法
    关于如何写小说的文章
    对概念解释得很好的文章列表
    k8s 添加补全脚本
    ingress与ingress-controller
    k8s 暴露服务的几种方式
    DevOps 的生活很有意思但并不容易---《DevOps 实践》读后总结 ----------转载转载转载转载转载转载转载转载转载
    SpringMVC的注解机制:Java中利用反射查找使用指定注解的类---找到指定包下的指定注解类
    Web应用安全威胁与防治--基于OWASP TOP 10 与ESAPI
  • 原文地址:https://www.cnblogs.com/MCSFX/p/13265000.html
Copyright © 2011-2022 走看看