c中计时的几种方法
C计时的几种方法说明及例程
1. 使用clock() 函数
头文件:<time.h>
clock()函数,返回“自程序启动到调用该函数,CPU时钟的计时单元数(clock tick)”
每过1ms,计数值+1
精度:1毫秒
#include <stdio.h>
#include <time.h>
int main()
{
clock_t start,end; // typedef long clock_t
start = clock();
long i= 1000000000L;while(i--){}
end = clock();
//#define CLOCKS_PER_SEC ((clock_t)1000)
double duration =(double)(end-start)/CLOCKS_PER_SEC;
printf("%f\n",duration); // 4.015
return 0;
}
2. 使用time() 函数
头文件:<time.h> 中
clock()返回公元1970.01.01 0:0:0秒算起到现在所经过的秒数。
即Calendar Time,日历时间
精度:1秒
#include <time.h>
int main()
{
time_t start,end; // typedef long time_t;
start = time(NULL); // 等同于 time(&start);
long i=1000000000L;while(i--){}
end = time(NULL);
long duration =end - start;
printf("%ld\n",duration); // 4
return 0;
}
3. 使用GetTickCount () 函数
头文件:<windows.h> 中
在精度要求较高的情况下,可以利用GetTickCount()函数,该函数的返回值是 DWORD型,表示以ms为单位的计算机启动后经历的时间间隔
(最大49.7天)。在较短的定时中其计时误差为15ms,在较长的定时中其计时误差较低,如果定时时间太长,就好象死机一样,CPU占用率非常高,只能
用于要求不高的延时程序中。
精度:1毫秒,短时误差15ms
#include <stdio.h>
#include <windows.h>
int main()
{
DWORD start,end;//typedef unsigned long DWORD;
start = GetTickCount();
long i=1000000000L;while(i--){}
end = GetTickCount();
double duration = (double)(end-start)/1000;
printf("%f\n",duration); // 3.922
return 0;
}
4. 使用QueryFrequencyCount () 函数
头文件:<windows.h>
高精度计数器
精度:1微秒,误差不超过0.5微妙(精度为1000 000/(cpu主频)微秒)
#include <stdio.h>
#include <windows.h>
int main()
{
LARGE_INTEGER f;
QueryPerformanceFrequency(&f);//获取内部高精度计数器的频率
double dFreq;
dFreq = (double)f.QuadPart; //获取计数器的频率
LARGE_INTEGER start,end;
QueryPerformanceCounter(&start);//获取内部高精度计数器当前的计数值
long i=1000000000L;while(i--){}
QueryPerformanceCounter(&end);
//时间差 = 计数值差/频率(单位s)
double duration = (double)(end.QuadPart-start.QuadPart)/dFreq;
printf("%f\n",duration);// 3.969499
return 0;
}
c中计时的几种方法的更多相关文章
- 解析Jquery取得iframe中元素的几种方法
iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作,需要的朋友可以参考下 DOM方法:父窗口操作IFRAME:window.frames[&q ...
- 转载:WinForm中播放声音的三种方法
转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753 ...
- java中需要关注的3大方面内容/Java中创建对象的几种方法:
1)垃圾回收 2)内存管理 3)性能优化 Java中创建对象的几种方法: 1)使用new关键字,创建相应的对象 2)通过Class下面的new Instance创建相应的对象 3)使用I/O流读取相应 ...
- MATLAB中多行注释的三种方法
MATLAB中多行注释的三种方法 A. %{ 若干语句 %} B. 多行注释: 选中要注释的若干语句, 编辑器菜单Text->Comment, 或者快捷键Ctrl+R 取消注释: 选中要取消注释 ...
- C#中文件下载的几种方法演示源码
内容过程,把内容过程比较重要的内容做个珍藏,如下的内容是关于C#中文件下载的几种方法演示的内容,应该是对各朋友有较大好处. using System;using System.Data;using S ...
- Jquery取得iframe中元素的几种方法(转载)
iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作 DOM方法:父窗口操作IFRAME:window.frames["iframeSon ...
- js 跨域 Jquery取得iframe中元素的几种方法
http://www.jb51.net/article/34942.htm 收集利用Jquery取得iframe中元素的几种方法 : 父页面访问子页面 $(document.getElementByI ...
- [浪风转载]Jquery取得iframe中元素的几种方法
iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作 DOM方法:父窗口操作IFRAME:window.frames["iframeSon ...
- Jquery取得iframe中元素的几种方法Javascript Jquery获取Iframe的元素、内容或者ID
query取得iframe中元素的几种方法 在iframe子页面获取父页面元素代码如下: $('#objId', parent.document);// 搞定... 在父页面 获取iframe子页面的 ...
随机推荐
- split方法在低版本IE浏览器上无法解析的问题
前一篇不知道怎么被博客园给删了,重新补发一个. 最近在项目中发现一个很诡异的问题,通过js获取cookie时,发现赋给用户name的时候IE9和低于9以下的浏览器对比时获取到的名字不一样,通过调试发现 ...
- 常用px,pt,em换算表
pt (point,磅):是一个物理长度单位,指的是72分之一英寸. px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(D ...
- 如何监听非本地IP
做HA的时候,如果每个机器上同时需要监听多个IP的同一个端口.那么肯定是需要写死监听的IP和端口.比如在haproxy里面: frontend free bind default_backend te ...
- POJ ---3070 (矩阵乘法求Fibonacci 数列)
Fibonacci Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 ...
- [Stephen]转载 如何提高测试用例评审效率
年前启动的项目,之前一直各种需求文档的评审,之后搁置了一段时间进行其他项目的测试,如今开始各个模块的测试点评审,项目较大,模块较多,仅需求点将近250个.由8个人负责分工完成,几乎每天一个会议对各模块 ...
- seleniumRC启动及浏览器实例配置
一.firefox浏览器实例配置 1.启动用户配置文件管理器 重要:在启动用户配置文件管理器之前,Firefox必须完全关闭. 1)按 support.cdn.mozilla.net/medi ...
- Unity 打包后文件系统访问的一个小细节
Android: 使用 File 类 来访文本文件系统不区分大小写:但是访问 jar 包内的文件是区分大小写的,比如使用 www类,都需要区分大小写. iOS: 使用 File 类 来访文本文件系统严 ...
- HW5.5
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- puppet运维配置实列
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABQkAAAGBCAIAAABKMKAEAAAgAElEQVR4nOydeXwU9cH/t2o9WutR+7
- hdoj 2524 矩形A + B
矩形A + B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...