6

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

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

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

4

3 回答 3

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;

这通常会给你毫秒精度。

于 2012-12-25T11:11:34.610 回答
1

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

GetTickCount64()

直接返回系统启动后经过的毫秒数。

如果您不打算让您的系统长时间运行(精确地超过 49.7 天),稍微快一点的版本 - GetTickCount()函数

于 2014-03-25T23:51:12.943 回答
0

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

我可以建议你把你的时间基于

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

然后进行相应的计算。

于 2016-05-04T17:56:07.747 回答