如何计算某个函数(重复调用)的毫秒数?
我想到了:
CTime::GetCurrentTM()
之前,
CTime::GetCurrentTM()
之后,
然后将结果插入CTimeSpan diff = after - before
最后将diff存储到全局成员中,该成员总结所有差异,因为我想知道此函数花费的总时间。
但它会在几秒钟而不是几毫秒内给出答案。
答案 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();
并进行相应的计算后。