getTickCount()和 clock()计算程序运行时间

本文介绍了如何利用OpenCV中的getTickCount()和getTickFrequency()来计算程序运行时间,以及如何使用C标准库的clock()函数进行时间测量。getTickCount()返回操作系统启动以来的计时周期数,getTickFrequency()则返回CPU频率。通过两者结合,可以转换为程序运行的秒数。同时,文章还对比了C版本的cvGetTickFrequency()与C++版本的区别。另外,还展示了如何使用clock()函数计算程序运行时间,该函数返回的是CPU时钟计时单元数,单位为ms。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数解释:

getTickCount()函数:它返回从操作系统启动到当前所经的计时周期数。(s)

getTickFrequency()函数:返回CPU的频率。(s)

{

double t1 = (double)getTickCount();

. . .

double t2 = (double)getTickCount();

out<<"time:"<<(t2-t1)*1000/(getTickFrequency())<< "ms\n"<<endl;

}


总次数/一秒内重复的次数 = 时间(s) 
1000 *总次数/一秒内重复的次数= 时间(ms)

C版本的cvGetTickFrequency()函数和C++版本的getTickFrequency()的单位不一样,

前者以ms计算频率,后者以s为单位计算频率,所以如果使用C版本的cvGetTickFrequency()计算时间的话,应该是: 
总次数/一秒内重复的次数 = 时间(ms) 
总次数/一秒内重复的次数*1000= 时间(s)
--------------------- 
    double timeStart = (double)getTickCount();
    ……
    double Time = ((double)getTickCount() - timeStart) / getTickFrequency();
    cout << "运行上面程序共耗时:" << Time << "秒\n" << endl;

--------------------- 

int begintime, endtime;

 begintime = clock();

……

 endtime = clock();

printf("\nRunning Time:%dms\n", endtime - begintime);

--------------------- 

time.h中的声明:clock_t  clock(void);clock_t是一个长整形数,单位为ms。

这个函数返回从“程序启动”到“程序中调用clock()函数”之间的CPU时钟计时单元(clock tick)数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值