C++ 中的计时器
在Java中,有时候会要测试程序的性能,所以会采用System.currentTimeMillis()等类库函数去测试时间开销。
在C++中同样可以完成此功能。
头文件:
#include<ctime>
示例程序:
#include<iostream>
#include<ctime>
using namespace std;
const int N =;
int main(){
clock_t now = clock();
for(int i = ; i< N ; ++i){
;
}
cout<<clock() - now<<endl;
return ;
}
这段程序输出了循环N次计算机需要的时间。
clock_t 类型是ctime的内置类型,因为在有的机器上clock()函数返回的有可能是long,也有可能是unsigned long,所以采用了一个新类型clock_t来实现这个类型的自动变换。
clock()函数返回的是一个系统时间,一般可以把它想象成毫秒。
而在ctime头文件中还有一个预定义宏,他就是CLOCKS_PER_SEC,这个宏就表示了“毫秒”和秒之间的倍数关系:
1、CLOCKS_PER_SEC / clock() == 秒
2、秒 * CLOCKS_PER_SEC == 毫秒
根据这个,我们可以实现另一个程序,就是通过while循环,让程序延时一段时间。
示例代码:
#include<cstdio>
#include<iostream>
#include<ctime>
using namespace std; int main(){
int delay;
cout<<"输入要延时的时间(秒):"<<flush;
cin>>delay;
delay *= CLOCKS_PER_SEC;
clock_t now = clock();
while(clock() - now < delay)
;
cout<<"延时完毕"<<endl;
return ;
}
这样一个简单的程序就完成了一个很有意思的任务。。。
C++ 中的计时器的更多相关文章
- aspx利用cookie值来停止silverlight中的计时器
一.silverlight与silverlight中可以利用委托(delegate)来刷新frame.Refresh() 1.在子类中定义委托捕捉关闭事件按钮 public delegate void ...
- [转载]C#中各种计时器
1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch) Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 S ...
- C#中各种计时器
1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch) Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 S ...
- C#中各种计时器 Stopwatch、TimeSpan
1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch)Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 St ...
- JS中的计时器事件
JS可以实现很多java代码不易完成的功能.这里学习一些js中的计时器事件. JavaScript 一个设定的时间间隔之后来执行代码,称之为计时事件. 主要通过两个方法来实现: 1.setInterv ...
- python中的计时器:timeit
python中的计时器:timeit timeit 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:timeit #导 ...
- python中的计时器:timeit模块
python中的计时器:timeit模块 (1) timeit - 通常在一段程序的前后都用上time.time()然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:ti ...
- js中的计时器事件`setTimeout()` 和 `setInterval()`
js中的计时器事件 在js中,通常会有一些事件,我们需要让它 间隔一段时间之后再发生,或者 每隔一段时间 发生一次,那就需要用到我们js中的计时事件 计时事件主要有两种: setTimeout() - ...
- Combine 框架,从0到1 —— 4.在 Combine 中使用计时器
本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 4.在 Combine 中使用计时器. 内容概览 前言 使用计时器执行周期性的工作 将计时器转换为计时 ...
- js中的计时器
在JS中做二级菜单时,被一个鼠标移出时隐藏的小问题困扰了很久. <script> function Menu(id){ var _this=this; this.obj=document. ...
随机推荐
- 【ios开发】iOS App测试方案
之前IOS测试一半都是采用的Testflight,但是2014.2.19日以后,testflight已经不提供新注册的用户下载SDK了. 但是不用担心我们还可以采用其他几种方案. 1)Ubertest ...
- [转]loadView的用法,loadView创建基本界面,DidLoad读入数据
loadview: // 有没有nib 只要是复写了loadview loadview都会被执行 有nib文件的话加载的是nib文件的view 没有的话会按照loadview里的代码加载 ...
- 算法打基础——顺序统计(找第k小数)
这次主要是讲如何在线性时间下找n个元素的未排序序列中第k小的数.当然如果\(k=1 or k=n\),即找最大最小 数,线性时间内遍历即可完成,当拓展到一般,如中位数时,相关算法就值得研究了.这里还要 ...
- [每日一题] OCP1z0-047 :2013-07-29 视图――别名
本题的考点是如何创建视图,对于视图的详细知识点,可以参考我的博客: http://blog.csdn.net/guoyjoe/article/details/8614677 好,接下来我们来做测试,先 ...
- ie7,8下__flash__addCallback报错原因及解决方案
首先附张图,以直观说明错误的现象:(ie7.8)
- ASP.NET MVC:利用ASP.NET MVC4的IBundleTransform集成LESS
ASP.NET MVC:利用ASP.NET MVC4的IBundleTransform集成LESS 背景 LESS确实不错,只是每次写完LESS都要手工编译一下有点麻烦(VS插件一直没有安装好),昨天 ...
- javascript数组、对象和Null的typeof同为object,区分解决办法
在JS里typeof 大家用的很多,可以使对于数组.对象和Null无法区分的问题,看了看犀牛书还是有解决办法的. document.writeln(typeof "abc"); / ...
- hdu 1253 胜利大逃亡(BFS)
题目链接:点击链接 三维的BFS,刚开始一直超内存,超无语...... 改了n多次终于AC了 #include <iostream> #include <stdio.h> # ...
- 从零开始学C++之RTTI、dynamic_cast、typeid、类与类之间的关系uml
一.RTTI Run-time type information (RTTI) is a mechanism that allows the type of an object to be deter ...
- 手动创建servlet
1 tomcat/webapps/目录下创建web应用mail. 目录结构如下 tomcat/webapps | mail | WEB-INF | | ...