c语言 计算程序运行时间

c语言 计算程序运行时间,第1张

#include <stdioh>

#include <timeh>

#define N 10000 /这个数字可以自己改,如果时间太长结果不出来你就改小点/

void f()

{

int i, j, k;

for ( i = 0; i < N; ++i )

for ( j = 0; j < N; ++j )

for ( k = 0; k < N; ++k )

;

}

int main()

{

clock_t begin, duration;

begin = clock();

f();

duration = clock() - begin;

printf( "函数f()的运行时间大约为:%dms\n", duration1000/CLOCKS_PER_SEC );

}

获取程序运行时间:

在<timeh>里有函数clock();本身这个函数取得的时间好像是ms,要取得s就

写成clock()/CLOCKS_PER_SEC;但CLOCKS_PER_SEC是在timeh里定义的,如果没这个定义

那只能用clock();取得ms;这个函数的执行不会中途停止,如果是在windows系统下,因为它是

多任务系统,它需要在各任务之间切换,如果在测试过程中,执行其他程序,所其得的时间,就会

出现差别,还有windows运行速度相当快,对于小型的测试,所得的时间几乎为0,因此最好将

要测试的过程执行100次或以上,然后再将取得的时间执行次数;输出非常耗时间,没什么必要

的话,就不要输出

这是一个测试选择排序的程序

#include

<stdioh>

#include

<stdlibh>

#include

<timeh>

#define

M

1000

/

执行次数

/

#define

N

500

/

数组大小

/

void

SelectSort(int

a,int

l,int

r)

{

int

i,j,v;

for

(i=0;i<r;i++)

{

for

(j=i+1;j<=r;j++)

{

if

((a+i)>(a+j))

v=(a+i),(a+i)=(a+j),(a+j)=v;

}

}

}

void

main()

{

int

a[N],i,j;

double

start,finish;

/

开始时间,结束时间

/

start=(double)clock();

/

我的timeh内没有CLOCKS_PER_SEC

/

for

(j=0;j<M;j++)

{

/

执行M次

/

for

(i=0;i<N;(a+i++)=rand()%10);

/

每次重新赋值

/

SelectSort(a,0,N-1);

}

finish=(double)clock();

printf("%4fms",(finish-start)/M);

getchar();

}

BOOL QueryPerformanceFrequency(LARGE_INTEGER lpFrequency);可以返回硬件支持的高精度计数器的频率。先调用QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。接着在需要严格计时的事件发生前和发生之后分别调用QueryPerformanceCounter(),利用两次获得的计数之差和时钟频率,就可以计算出事件经历的精确时间。

#include "stdafxh"

#include <windowsh>

#include <timeh>

#include  "processh"

#define random(x) (rand()%x)

int _tmain(int argc, _TCHAR argv[])

{

    LARGE_INTEGER fre = { 0 };  //储存本机CPU时钟频率

    LARGE_INTEGER startCount = { 0 };

    LARGE_INTEGER endCount = { 0 };

    QueryPerformanceFrequency(&fre);//获取本机cpu频率

    //开始计时

    QueryPerformanceCounter(&startCount);

    //运算

    

    for (int i = 0; i < 10000000; i++)

    {

        float fTem1 = random(100)random(1000)random(10000)random(100000);

    }

    //结束计时

    QueryPerformanceCounter(&endCount);

    //计算时间差

    double dTimeTake = ((double)endCountQuadPart - (double)startCountQuadPart) / (double)freQuadPart;

    printf("用时%f\n", dTimeTake);

    system("pause");

    return 0;

}

以上就是关于c语言 计算程序运行时间全部的内容,包括:c语言 计算程序运行时间、那位高手知道C语言中如何查看程序运行时间、C语言中如何输出显示程序的运行时间 望赐教!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9349268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存