MFC测量功能,以毫秒为单位

时间:2012-12-25 11:04:03

标签: mfc ctime

如何计算某个函数(重复调用)的毫秒数? 我想到了:
CTime::GetCurrentTM()之前,
CTime::GetCurrentTM()之后,

然后将结果插入CTimeSpan diff = after - before 最后将diff存储到全局成员中,该成员总结所有差异,因为我想知道此函数花费的总时间。

但它会在几秒钟而不是几毫秒内给出答案。

3 个答案:

答案 0 :(得分:6)

MFC是C ++,对吧?

如果是这样,您可以使用clock()

#include <ctime>

clock_t time1 = clock();
// do something heavy
clock_t time2 = clock();
clock_t timediff = time2 - time1;

float timediff_sec = ((float)timediff) / CLOCKS_PER_SEC;

这通常会给你毫秒精度。

答案 1 :(得分:1)

如果您使用的是MFC,那么很好的方法是使用WIN API。由于您只是担心计算时差,因此以下功能可能非常适合您。

GetTickCount64()
自系统启动以来,

直接返回number of milli seconds that has elapsed

如果您不打算长时间保持系统运行(恰好超过49.7天),请稍微加快版本 - GetTickCount()功能

答案 2 :(得分:0)

已知COleDateTime在内部基于毫秒工作,因为它在其m_dt变量上存储时间戳,该变量是DATE类型,因此具有用于预期目的的分辨率。

我建议你把时间花在

DATE now= (DATE) COleDateTime::GetCurrentTime();

并进行相应的计算后。