在C/C++中有可以直接测试程序运行时间的函数,在<time.h>/<ctime>头文件中,非常方便和实用。

clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:
clock_t clock(void) ;
简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的数据类型,clock_t实质是头文件中long数据类型类型定义的一个代称。使用计时很简单,只要在程序想计时的地方放入一个clock()函数,另外在结束地方放置一个clock()函数,两个返回值的差即是程序消耗时间。但是该函数计时是以毫秒(ms)为单位的,也就是没过千分之一秒加一,所以需要除以一个常量1000才是以秒计时的,一般使用头文件中声明好的常量CLOCKS_PRE_SEC(即1000)。

测试程序如下:

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
clock_t start,end;int main(){start=clock();        //程序开始计时int ans=0;for(int i=1;i<=1e8;i++)ans++;end=clock();      //程序结束用时double endtime=(double)(end-start)/CLOCKS_PER_SEC;cout<<"Total time:"<<endtime<<endl;      //s为单位cout<<"Total time:"<<endtime*1000<<"ms"<<endl;    //ms为单位system("pause");return 0;
}

运行截图:

用double强转是为了更精确,不然不足1秒的会显示0s。

C/C++程序计时函数相关推荐

  1. time.h中的相关计时函数time,localtime,clock等详解

    C++对时间的操作也有许多值得大家注意的地方.最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作.获取和显示等等的问题.下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法 ...

  2. 【C/C++】计时函数比较

    目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但 ...

  3. linux计时函数的使用

    linux计时函数的使用 linux下计时函数的使用目的是测量程序运行的时间 头文件 #include <sys/time.h> 计时函数 int gettimeofday(struct ...

  4. linux c++ 程序运行时间,总结UNIX/LINUX下C++程序计时的方法

    前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序 ...

  5. 计时函数clock()与数据类型clock_t

    数据类型 clock_t 关于该数据类型的定义如下: #ifndef _CLOCK_T_DEFINED typedef long clock_t; #define _CLOCK_T_DEFINED # ...

  6. 阶乘之和取后六位以及有趣的计时函数。

    题目:输入n,计算S=1!+2!+3!+···+n!的末6位(不含前导0).n<=10^6.这里,n!表示前n个正整数之积. 样例输入:10 样例输出:37913. 代码如下: #include ...

  7. 计时函数(基本知识)

    计时函数的运用 在算法题提交的时候,系统经常会给你一个TLE. 这提醒我们要优化算法,但我们如何优化算法这是一个问题. 我们可以运用计时函数,大概统计一下代码在最糟糕的情况下的运行时间. 可以大概得出 ...

  8. C/C++常用计时函数

    目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但 ...

  9. 痞子衡嵌入式:嵌入式里通用微秒(microseconds)计时函数框架设计与实现

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式里通用微秒(microseconds)计时函数框架设计与实现. 在嵌入式软件开发里,计时可以说是非常基础的功能模块了,其应用也非常 ...

最新文章

  1. oracle 00966,oracle错误代码一览表
  2. Windows环境安装运行:Angular.js
  3. Referenced file contains errors (http://www.springframework.org/schema...错误--转载
  4. 今年618我要Pick有很吓人技术GPU TURBO的手机,你呢?
  5. C++有哪些性质(面向对象特点)
  6. python根据文件名获取文件路径_python 查看文件名和文件路径
  7. UVA - 1378 A Funny Stone Game(博弈+sg函数)
  8. LeetCode 1165. 单行键盘(哈希)
  9. 总结几个字符串类的动态规划(最长公共子串,回文子串,子序列)
  10. jquery --- Poshy Tip jQuery Plugin
  11. Linux内核深入理解定时器和时间管理(1):硬件时钟和jiffies
  12. Spark修炼之道(高级篇)——Spark源码阅读:第九节 Task执行成功时的结果处理...
  13. 请求重定向与请求转发的区别
  14. ie6 插入图片img png24 阴影
  15. Picasso,Glide,Fresco对比分析
  16. Eucalyptus云之面纱
  17. 技术总监面试题(Java),看看你会多少?
  18. VS2010 C++ 操作Excel表格的编程实现(OLE/COM)
  19. 虚拟视频驱动vivi.c分析(linux-3.4.2版本)
  20. 利用Java的JavaMail发送邮件:企业邮箱版和个人邮箱客端版

热门文章

  1. Python数据分析从入门到精通视频教程
  2. 戴森新一代Airwrap多功能造型器评测:现在都这么「卷」了吗?
  3. Oralce数据库备份与恢复
  4. window.open方法闪退(跨域被拦截)
  5. python io
  6. Fitbit融资7.3亿美元上市了 成可穿戴设备第一股
  7. oracle 监听共享 专用,【案例】Oracle报错TNS-12618 多版本监听LISTENER程序共享无法启动...
  8. 后疫情时代,便利店还好吗?
  9. 图解Linux命令之--mkfs命令
  10. android.bp编译生成so,Android导入第三方静态库.a编译成动态库.so