c++利用windows函数实现计时示例

代码如下:

//Windows系统下可以用 time(),clock(),timeGetTime(),GetTickCount(),QueryPerformanceCounter()来对一段程序代码进行计时

#include <stdio.h>
#include <windows.h>
#include <time.h>                   //time_t time()  clock_t clock()   
#include <Mmsystem.h>               //timeGetTime()   
#pragma comment(lib, "Winmm.lib")   //timeGetTime()

//使用方法:将Sleep()函数换成需要测试运行时间的函数即可。

int main()
{   //用time()来计时,以秒为单位
    time_t timeBegin, timeEnd;
    timeBegin = time(NULL);
    Sleep(1000);
    timeEnd = time(NULL);
    printf("%d\n", timeEnd - timeBegin);

//用clock()来计时,以毫秒为单位
    clock_t  clockBegin, clockEnd;
    clockBegin = clock();
    Sleep(800);
    clockEnd = clock();
    printf("%d\n", clockEnd - clockBegin);

//用timeGetTime()来计时,以毫秒为单位
    DWORD  dwBegin, dwEnd;
    dwBegin = timeGetTime();
    Sleep(800);
    dwEnd = timeGetTime();
    printf("%d\n", dwEnd - dwBegin);

//用GetTickCount()来计时,以毫秒为单位
    DWORD  dwGTCBegin, dwGTCEnd;
    dwGTCBegin = GetTickCount();
    Sleep(800);
    dwGTCEnd = GetTickCount();
    printf("%d\n", dwGTCEnd - dwGTCBegin);

//用QueryPerformanceCounter()来计时,以微秒为单位
    LARGE_INTEGER  large_interger;
    double dff;
    __int64  c1, c2;
    QueryPerformanceFrequency(&large_interger);
    dff = large_interger.QuadPart;
    QueryPerformanceCounter(&large_interger);
    c1 = large_interger.QuadPart;
    Sleep(800);
    QueryPerformanceCounter(&large_interger);
    c2 = large_interger.QuadPart;
    printf("本机高精度计时器频率%lf\n", dff);
    printf("第一次计时器值%I64d\n第二次计时器值%I64d\n计时器差%I64d\n", c1, c2, c2 - c1);
    printf("计时%lf毫秒\n\n", (c2 - c1) * 1000 / dff);
    return 0;
}

(0)

相关推荐

  • C++中获取UTC时间精确到微秒的实现代码

    在日常开发过程中经常会使用到时间类函数的统计,其中获取1970年至今的UTC时间是比较常使用的,但是在windows下没有直接能够精确到微妙级的函数可用.本文提供方法正好可以解决这类需求问题. 下面先给出C++实现代码: 复制代码 代码如下: #ifndef UTC_TIME_STAMP_H_#define UTC_TIME_STAMP_H_ #include <windows.h>#include <sys/timeb.h>#include <time.h> #if

  • C++ clock()解析如何使用时钟计时的应用

    C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t.在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从"开启这个程序进程"到"程序中调用clock()函数"时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock).其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:#ifndef _CLOCK_T_DE

  • C++设置系统时间及系统时间网络更新的方法

    本文实例讲述了C++设置系统时间及系统时间网络更新的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: //根据返回的时间设置系统时间 void setTimeFromTP(ULONG ulTime) {      FILETIME ft;      SYSTEMTIME st;        //将基准时间转换成windows文件时间      st.wYear = 1900;      st.wMonth = 1;      st.wDay = 1;      st.wHo

  • 总结UNIX/LINUX下C++程序计时的方法

    前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序计时产生影响. 下面看看小编为大家整理几个计时方法 方法一: 如果是想统计某个程序的运行时间,那么可以使用 time ./a.out 方法二: 如果是想对某个函数或者语句进行计时,那么有别的方法.比如说,gettimeofday函数.直接贴示例代码: #include <sys/time.h> v

  • C++如何实现简单的计时器详解

    实现分析 首先我们先分析一下计时器的一些功能,简单一点的计时器包括开始.暂停.停止和显示基本功能,这些功能以C++面向对象的编程思想(OOP)进行抽象,就是计时器类(Timer)的4个成员函数,当然我们要把这些函数作为公有的,因为它们是留给外部的接口(interface). 然后我们再分析一下计时器的三种状态:停止,正在运行,暂停(注意:暂停不是停止),那么怎么记录计时器的三种状态呢? 这里我们用布尔类型的变量记录计时器的三种状态,分别为bool is_pause,bool is_stop,在这

  • C#调用C++版本dll时的类型转换需要注意的问题小结

    C#对于C++的dll引用时,经常会遇到类型转换和struct的转换 1. C++ 里的Char类型是1 个字节,c#里的Char是两个字节,不可以对应使用:可使用c#里的byte对应 2. structType temp = (structType)Marshal.PtrToStructure(IntPtr, typeof(structType));说明:此方式转换只针对包含c++基本类型的结构体,如果包含指针数组的结构体,使用泛型函数比较方便. 3. [StructLayoutAttribu

  • C++函数返回值为对象时,构造析构函数的执行细节

    看如下代码: 复制代码 代码如下: #include<iostream>class TestConstructor{public:    TestConstructor()    {        std::cout<<"TestConstructor()"<<std::endl;    }    ~TestConstructor()    {        std::cout<<"~TestConstructor()"

  • C++指针作为函数的参数进行传递时需要注意的一些问题

    只有在被调函数中,对指针进行引用操作,才可以达到不需要返回值,就对指针指向的变量做出相应的变化. 下面分析这样两个例子; 要求:定义并初始化两个字符串变量,并执行输出操作:然后调用函数使这两个变量的值交换,并且要求被调函数的传值通过传递指针来实现. 程序1.1 复制代码 代码如下: #include<iostream>#include<string>using namespace std;int main(){   string str1="I love China!&q

  • C++获取当前系统时间的方法总结

    本文实例讲述了C++获取当前系统时间的方法.分享给大家供大家参考.具体如下: 方案- 优点:仅使用C标准库:缺点:只能精确到秒级 #include <time.h> #include <stdio.h> int main( void ) { time_t t = time(0); char tmp[64]; strftime(tmp,sizeof(tmp),"%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t)); puts(

  • c++利用windows函数实现计时示例

    复制代码 代码如下: //Windows系统下可以用 time(),clock(),timeGetTime(),GetTickCount(),QueryPerformanceCounter()来对一段程序代码进行计时 #include <stdio.h>#include <windows.h>#include <time.h>                   //time_t time()  clock_t clock()    #include <Mmsys

  • 利用Python函数实现一个万历表完整示例

    前言 大家可以根据格式化打印字符去调一下最后的输出,不过有中文好像不好调整,可以换成星期的单词,这样应该会好一点,format()函数可以用来格式化打印字符,format()可以使用字符串去调用,也可以独自使用. 可以点进格式化打印字符了解一下哦 示例代码 # 判断是否闰年 def isleap(year): return year % 4 == 0 and year % 100 != 0 or year % 400 == 0 # 判断月的天数 def month_days(year,month

  • C#利用Windows自带gdi32.dll实现抓取屏幕功能实例

    本文实例讲述了C#利用Windows自带gdi32.dll实现抓取屏幕功能,是C#应用程序设计中一个非常实用的功能,现分享给大家供大家参考借鉴. 具体功能代码如下: internal static void GetScreenShot( ) { //获得当前屏幕的大小 Rectangle rect = new Rectangle(); rect = Screen.AllScreens[0].WorkingArea; //计算图片的大小,因为图片的长和宽有可能超过目前屏幕的大小 //创建一个以当前

  • C#实现利用Windows API读写INI文件的方法

    本文实例讲述了C#实现利用Windows API读写INI文件的方法.分享给大家供大家参考.具体如下: 写入时,如果没有INI文件,自动创建INI 如果在创建时,GetLastError:5 检查IniPath是否添加了文件名称.ini using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Runtime.InteropServices; namespace

  • 利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历史悠久,原来是只支持python2.x的版本的,后来出现了移植到python3的库pillow,pillow号称是friendly fork for PIL,其功能和PIL差不多,但是支持python3.本文只使用了PIL那些最常用的特性与用法,主要参考自:http://www.effbot.org

  • Python:__eq_和__str__函数的使用示例

    一.__eq__方法 在我们定义一个类的时候,常常想对一个类所实例化出来的两个对象进行判断这两个对象是否是完全相同的.一般情况下,我们认为如果同一个类实例化出来的两个对象的属性全都是一样的话,那么这两个对象是相同的.但是如果我们直接用"=="来判断这两个对象知否相等,那么结果一定是不相等的,因为这两个对象的地址一定不同,它们在内存当中的不同区域,比如我们有代码: class Item: def __init__(self, name, weight): self.name=name s

  • 利用 JavaScript 实现并发控制的示例代码

    一.前言   在开发过程中,有时会遇到需要控制任务并发执行数量的需求.   例如一个爬虫程序,可以通过限制其并发任务数量来降低请求频率,从而避免由于请求过于频繁被封禁问题的发生.   接下来,本文介绍如何实现一个并发控制器. 二.示例 const task = timeout => new Promise((resolve) => setTimeout(() => { resolve(timeout); }, timeout)) const taskList = [1000, 3000,

  • R语言利用plot()函数画图的基本用法

    plot()函数在R语言画图中位置十分重要,现在就对其具体用法做一个总结. 基本用法: plot(x=x轴数据,y=y轴数据,main="标题",sub="子标题",type="线型",xlab="x轴名称",ylab="y轴名称",xlim = c(x轴范围,x轴范围),ylim = c(y轴范围,y轴范围)) 示例代码为: plot(c(1:6),c(1:6),main="test"

  • Python:__eq__和__str__函数的使用示例

    一.__eq__方法 在我们定义一个类的时候,常常想对一个类所实例化出来的两个对象进行判断这两个对象是否是完全相同的.一般情况下,我们认为如果同一个类实例化出来的两个对象的属性全都是一样的话,那么这两个对象是相同的.但是如果我们直接用"=="来判断这两个对象知否相等,那么结果一定是不相等的,因为这两个对象的地址一定不同,它们在内存当中的不同区域,比如我们有代码: class Item: def __init__(self, name, weight): self.name=name s

  • Python利用format函数实现对齐打印(左对齐、右对齐与居中对齐)

    目录 forma格式化的用法 用format函数实现对齐打印 居中对齐示例 右对齐示例 左对齐示例 总结 forma格式化的用法 format函数可以接受不限个参数,位置可以不按顺序. 基本语法是通过{ }和:来代替c语言的%. >>> a="名字是:{0},年龄是:{1}" >>> a.format("煮雨",18) '名字是:煮雨,年龄是:18' {0},{1}代表的占位符,数字占位符要注意顺序. >>> c

随机推荐