导航:首页 > 软件知识 > 如何计算程序运算时间

如何计算程序运算时间

发布时间:2024-01-01 08:13:01

A. 如何计算程序的运行时间,并精确到微秒

1 需要取得系统精确时钟函数:
1)对于一般的实时控制,使用GetTickCount()函数就可以满足精度要求,但要进一步提高计时精度,就要采用 QueryPerformanceFrequency()函数和QueryPerformanceCounter()函数。
2)这两个函数是VC提供的仅供 Windows 9X使用的高精度时间函数,并要求计算机从硬件上支持高精度计时器。
3) QueryPerformanceFrequency()函数和 QueryPerformanceCounter()函数的原型为:

BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

BOOL QueryPerformanceCounter(LARGE_INTEGER *lpCount);
数据类型LARGE—INTEGER既可以是一个作为8字节长的整型数,也可以是作为两个4字节长的整型数的联合结构,其具体用法根据编译器是否支持64位而定。该类型的定义如下:
typedef union _LARGE_INTEGER
{
struct
{
DWORD LowPart; // 4字节整型数
LONG HighPart; // 4字节整型数
};
LONGLONG QuadPart;

// 8字节整型数
} LARGE_INTEGER;

4)在进行计时之前,应该先调用QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。笔者在三种PentiumⅡ机器上使用该函数,得到的时钟频率都是1193180Hz。接着,笔者在需要严格计时的事件发生之前和发生之后分别调用QueryPerformanceCounter()函数,利用两次获得的计数之差和时钟频率,就可以计算出事件经历的精确时间。
以下程序是用来测试函数Sleep(100)的精确持续时间。

LARGE—INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
// 获得计数器的时钟频率
dfFreq = (double)litmp.QuadPart;
QueryPerformanceCounter(&litmp);
// 获得初始值
QPart1 = litmp.QuadPart;
Sleep(100) ;
QueryPerformanceCounter(&litmp);
// 获得终止值
QPart2 = litmp.QuadPart;
dfMinus = (double)(QPart2 - QPart1);
dfTim = dfMinus / dfFreq;
// 获得对应的时间值
执行上面程序,得到的结果为dfTim=0.097143767076216(秒)。细心的读者会发现,每次执行的结果都不一样,存在一定的差别,这是由于Sleep()自身的误差所致。

B. java如何计算程序运行时间

第一种是以毫秒为单位计算的。

[java]view plain

//伪代码

longstartTime=System.nanoTime();//获取开始时间

doSomeThing();//测试的代码段

longendTime=System.nanoTime();//获取结束时间

System.out.println("程序运行时间:"+(end-start)+"ns");

包含所需的包: import java.lang.System;

C. 怎样用c语言设计计算程序执行的时间

C语言中的头文件time.h中定义了库函数clock(),它返回的是从程序运行开始算起的时间,一时钟周期为单位,time.h还定义了符号:CLOCKS_PER_SEC,即一秒钟的时钟周期。这样就简单了,在头文件中加入#include<time.h>,在程序main()主函数的开头定义long now=0;并给把clock()赋值给now,即now=clock();记录程序开始时的时间,clock()会继续增加,但now已经确定为开始那一时刻clock()的值,在程序结尾,算式clock()-now就是程序执行所需的时间,但是是以时钟周期为单位的,如果想得到以秒为单位的时间只要输出(clock()-now)/CLOCKS_PER_SEC就是了,即在程序结尾添加
printf("%lf",(clock()-now)/CLOCKS_PER_SEC);就可以了。

D. C语言求一个程序运行时间

C/C++中的计时函数是clock()。

所以,可以用clock函数来计算的运行一个循环、程序或者处理其它事件到底花了多少时间,具体参考代码如下:

#include“stdio.h”
#include“stdlib.h”
#include“time.h”

intmain(void)
{
longi=10000000L;
clock_tstart,finish;
doubleration;
/*测量一个事件持续的时间*/
printf("Timetodo%ldemptyloopsis",i);
start=clock();
while(i--);
finish=clock();
ration=(double)(finish-start)/CLOCKS_PER_SEC;
printf("%fseconds ",ration);
system("pause");
}

E. matlab中怎么计算程序运行时间

Matlab中计算函数运行时间的三种方法:
1、tic和toc组合
计算tic和toc之间那段程序之间的运行时间,它的经典格式为 :
tic
函数
toc
复制函数代码,当代码遇到tic时Matlab自动开始计时,运行到toc时自动计算此时与最近一次tic之间的时间。
2、etime(t1,t2)并和clock配合
计算t1,t2之间的时间差,它是通过调用windows系统的时钟进行时间差计算得到运行时间的,应用的形式:
t1=clock;
函数
t2=clock;
etime(t2,t1)
3、cputime函数来完成
使用方法和etime相似,只是这个是使用cpu的主频计算的,和前面原理不同,使用格式如下:
t0=cputime
函数
t1=cputime-t0

阅读全文

与如何计算程序运算时间相关的资料

热点内容
交易猫去发货什么意思 浏览:730
华为手机信息如何快速粘贴 浏览:896
实体店招代理怎么弄 浏览:559
油痘肌用冰溪哪些产品比较好 浏览:796
怎么辨别娇兰水300ml产品真假 浏览:554
广弘冷冻食品交易中心属什么区 浏览:474
日化品代理费是多少 浏览:105
武汉工程职业技术学院军训多少天 浏览:795
让渠道签代理协议怎么说 浏览:330
动态ip是怎么传输数据 浏览:937
灯光产品怎么拍 浏览:320
强迫交易罪如何举证 浏览:735
有什么比较好出货的代理 浏览:813
南宁手机二手市场在哪里 浏览:601
omg币哪里交易 浏览:54
个人社保代理缴费怎么做 浏览:720
怎么招代理小本买卖 浏览:541
关联医保卡是什么小程序 浏览:666
通信大数据怎么快速识别 浏览:42
如何查诉讼公示信息 浏览:697