MFC测量函数(毫秒)

MFC测量函数(毫秒),mfc,ctime,Mfc,Ctime,如何计算某个函数(反复调用)所需的毫秒数? 我想到: CTime::GetCurrentTM()之前, CTime::GetCurrentTM() 然后将结果插入到CTimeSpan diff=after-before 最后将该diff存储到全局成员,该成员对所有diff进行求和,因为我想知道该函数花费的总时间 但是它会给出答案,在几秒钟内,而不是毫秒。 < P> MFC是C++,对吗? 如果是这样,您可以使用clock() #包括 时钟时间1=时钟(); //做些重的事 时钟时间2=时钟();

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

然后将结果插入到
CTimeSpan diff=after-before

最后将该diff存储到全局成员,该成员对所有diff进行求和,因为我想知道该函数花费的总时间

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

< P> MFC是C++,对吗? 如果是这样,您可以使用
clock()

#包括
时钟时间1=时钟();
//做些重的事
时钟时间2=时钟();
时钟时间差=时间2-时间1;
浮点时差秒=((浮点)时差)/时钟每秒;

这通常会提供毫秒精度。

如果使用MFC,最好使用WinAPI。由于您担心的只是计算时间差,下面的函数可能非常适合您

GetTickCount64()
直接返回自系统启动以来的


如果您不打算让系统长时间运行(精确地说超过49.7天),则版本-功能会快一点,因为COleDateTime在内部是以毫秒为单位工作的,因为它将时间戳存储在其m_dt变量上,该变量为日期类型,因此具有预期用途的分辨率

我可以建议你把时间放在

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

然后进行相应的计算。

因为它基于系统启动的时间,所以在我看来,这种方法有一个问题:当计算机很少重新启动时:它可能会溢出计数器
timediff_sec*1000
为毫秒值,否则显示秒值。
DATE now= (DATE) COleDateTime::GetCurrentTime();