【C++学习笔记】获取函数运行时间的两种方法

1.GetTickCount()

GetTickCount是windows下的API函数,检索自系统启动以来经过的毫秒数,最多为49.7天。

//头文件
#include <windows.h>
//函数原型
DWORD WINAPI GetTickCount(void);
//返回值:
    系统启动后经过的毫秒数。

测试代码:

#include <iostream>
#include <ctime>
#include <windows.h>

using namespace std;

void Fun()
{
    for (int i = 1; i < 100000000; ++i)
    {
        ;
    }
}

int main()
{
    DWORD begin = 0;
    DWORD end = 0;
    DWORD  time = 0;

    begin = GetTickCount();
    Fun();
    end = GetTickCount();

    time = (end - begin);                   //ms

    cout << end - begin << endl;

    system("pause");
    return 0;
}
2.Clock()

Clock()是C++库里函数,它返回程序启动后经过的时钟节拍数,CLOCKS_PER_SEC这个宏扩展为一个表达式,表示一秒钟内时钟节拍数,由函数时钟返回。用这个表达式除以时钟节拍数就得到秒数。也有的地方用的时CLK_TCK,它们有同样的功能,不过是这个宏的一个过时的别名。

//头文件
#include <ctime>
//函数原型
clock_t clock ( void );
//返回值
    自程序启动以来,时钟滴答数一直在增加。
    在失败时,函数返回-1的值。
    clock_t是在中定义的一种类型,可以表示时钟滴答数并支持算术运算(通常是长整数)。

代码如下:

#include <iostream>
#include <ctime>
#include <windows.h>

using namespace std;

void Fun()
{
    for (int i = 1; i < 100000000; ++i)
    {
        ;
    }
}

int main()
{
    int begin = 0;
    int end = 0;
    double time = 0;

    begin = clock();
    Fun();
    end = clock();

    time = (end - begin) / CLOCKS_PER_SEC;

    cout << end - begin << endl;                //s
    cout << CLOCKS_PER_SEC << endl;
    cout << time << endl;

    system("pause");
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值