1

如何在 Android 框架中获取 C++ 方法的执行时间?

当天的 gettime 或 getsystem 时间调用是否合适?

我不希望计时器自己花费额外的时间,我更想要方法所花费的确切时间(可以通过在方法的开始和结束处插入开始和结束时间然后取差值)。

4

2 回答 2

1

不言自明的代码片段:

#include <sys/time.h>
struct timeval start, end, diff;
::gettimeofday(&start, NULL);
function(); // Whose Execution time to measure
::gettimeofday(&end, NULL);
timersub(&end, &start, &diff);

diff.tv_sec - 给你秒和
diff.tv_usec - 给你微秒

我建议这个链接:High Precision Timing ...供参考。

于 2012-11-26T14:52:45.917 回答
0

例如,这将以毫秒为单位返回当前时间,因此您可以在方法的开头和方法的结尾调用它并计算差异。它适用于Android原生层

#include <time.h>
uint64_t ticks_ms()
{
    timeval t;
    gettimeofday(&t, 0);
    return static_cast<uint64_t>(t.tv_sec) * 1000 + t.tv_usec / 1000;
}
于 2012-09-17T10:06:26.947 回答