如何在 Android 框架中获取 C++ 方法的执行时间?
当天的 gettime 或 getsystem 时间调用是否合适?
我不希望计时器自己花费额外的时间,我更想要方法所花费的确切时间(可以通过在方法的开始和结束处插入开始和结束时间然后取差值)。
如何在 Android 框架中获取 C++ 方法的执行时间?
当天的 gettime 或 getsystem 时间调用是否合适?
我不希望计时器自己花费额外的时间,我更想要方法所花费的确切时间(可以通过在方法的开始和结束处插入开始和结束时间然后取差值)。
不言自明的代码片段:
#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 ...供参考。
例如,这将以毫秒为单位返回当前时间,因此您可以在方法的开头和方法的结尾调用它并计算差异。它适用于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;
}