#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语言中如何输出显示程序的运行时间 望赐教!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)