c语言/c++计算程序运行时间

Posted emcikem

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言/c++计算程序运行时间相关的知识,希望对你有一定的参考价值。

精确到毫秒(ms)

#include<stdio.h>
#include<time.h>   //用到clock()函数
int main() 
    int begintime,endtime;
    int i = 0;
    int a[1002];
    begintime=clock();  //计时开始
    

        /*
        代码块
        */

    endtime = clock();  //计时结束
    printf("\n\nRunning Time:%dms\n", endtime-begintime);
    return 0;

精确到微秒(us)

#include<stdio.h>
#include <windows.h>
int main() 
    int a[10002];
    int i = 0;
    double run_time;
    _LARGE_INTEGER time_start;  //开始时间
    _LARGE_INTEGER time_over;   //结束时间
    double dqFreq;      //计时器频率
    LARGE_INTEGER f;    //计时器频率
    QueryPerformanceFrequency(&f);
    dqFreq=(double)f.QuadPart;
    QueryPerformanceCounter(&time_start);   //计时开始
    

        /*
        代码句
        */


    QueryPerformanceCounter(&time_over);    //计时结束
    run_time=1000000*(time_over.QuadPart-time_start.QuadPart)/dqFreq;
    //乘以1000000把单位由秒化为微秒,精度为1000 000/(cpu主频)微秒
    printf("\nrun_time:%fus\n",run_time);
    return 0;

测试时间与n的关系

采用的方式是简单的y++

时间复杂度为O(n)
执行9次操作

#include<stdio.h>
#include <iostream>
#include <windows.h>
#define ll long long
using namespace std;
int main() 


    ll x=1000;
    for(int i=1;i<10;i++)
        double run_time;
        LARGE_INTEGER time_start;  //开始时间
        LARGE_INTEGER time_over;   //结束时间
        double dqFreq;      //计时器频率
        LARGE_INTEGER f;    //计时器频率
        QueryPerformanceFrequency(&f);
        dqFreq=(double)f.QuadPart;
        QueryPerformanceCounter(&time_start);   //计时开始

        //开始操作
        ll y=0;
        for(ll j=1;j<=x;j++)
            y++;
        
        x*=10;
        //结束操作

        QueryPerformanceCounter(&time_over);    //计时结束
        run_time=1000000*(time_over.QuadPart-time_start.QuadPart)/dqFreq;
        //乘以1000000把单位由秒化为微秒,精度为1000 000/(cpu主频)微秒
        printf("\nrun_time:%fus\n",run_time);
    
    return 0;

最后输出的是

run_time:1.924813us

run_time:19.248130us

run_time:192.802098us

run_time:1950.156327us

run_time:18903.267242us

run_time:179787.474985us

run_time:1795408.102051us

run_time:18517596.319244us

run_time:186273317.344554us

明显地发现,呈现着线性的关系,n增大10倍后,时间也是增大10倍,所以时间复杂度可以用O(n)线性表示

以上是关于c语言/c++计算程序运行时间的主要内容,如果未能解决你的问题,请参考以下文章

求C语言程序:如何获得一个程序运行的时间? 最好带一段简单的代码 新人学不懂 呵呵 谢谢大家啦

C语言程序运行时间测试

谁能帮我用C语言写一个测试选择排序性能(函数的运行时间)的程序,不胜感激!

c语言 如何通过使用windows系统调用来计算一段程序的运行时间?

C# 计算程序运行时间

C语言计算机器运行时间