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

如何计算程序运算时间

发布时间: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

阅读全文

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

热点内容
市面上的信息流产品有哪些 浏览:358
plc如何读取dp口编码器数据 浏览:293
tst小代理如何做到创始人 浏览:270
京东物流信息怎么查询 浏览:877
如何理解期货市场交易的特殊性 浏览:421
技术员怎么给公司建议 浏览:661
不去人才市场如何转档案 浏览:638
华为手机哪个键是退出程序 浏览:951
如何给服务器做反向代理 浏览:646
医院实习能学到什么技术 浏览:244
苹果原装数据线怎么连接 浏览:62
如何应对跳空交易 浏览:293
微商代理服装鞋怎么样 浏览:537
翁向宏预测都有哪些技术 浏览:441
河南卫视没有信息怎么办 浏览:393
手游代理需要注意哪些 浏览:907
更新附加信息是什么 浏览:971
电子信技术是什么 浏览:39
二手车交易到本市怎么退档 浏览:619
如何通知老客户增加新产品 浏览:321