如何计算某个函数(重复调用)所花费的毫秒数?
我想到:CTime::GetCurrentTM()
之前,
CTime::GetCurrentTM()
然后将结果插入CTimeSpan diff = after - before
。
最后将diff存储到全局成员中,该成员将所有diffs求和,因为我想知道该函数花费的总时间。
,但它会以秒为单位给出答案,而不是毫秒。
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;
如果你正在使用MFC,最好的方法是使用WIN API。由于您担心的只是计算时差,下面的函数可能非常适合您。
GetTickCount64()
直接返回自系统启动以来经过的毫秒数。
如果你不打算让你的系统长时间运行(确切地说超过49.7天),稍微快一点的版本- GetTickCount()函数
COleDateTime已知在内部以毫秒为单位工作,因为它将时间戳存储在其m_dt变量上,该变量是DATE类型的,因此具有预期目的的分辨率。
我可以建议你把你的时间安排在
DATE now= (DATE) COleDateTime::GetCurrentTime();