Android フレームワークで C++ メソッドの実行時間を取得するにはどうすればよいですか?
gettime of the day または getsystem time 呼び出しは適切ですか?
タイマーがそれ自体で余分な時間を費やすのではなく、メソッドが要した正確な時間が必要です (メソッドの開始と終了に開始時間と終了時間を挿入し、差を取ることによって可能性があります)。
Android フレームワークで C++ メソッドの実行時間を取得するにはどうすればよいですか?
gettime of the day または getsystem time 呼び出しは適切ですか?
タイマーがそれ自体で余分な時間を費やすのではなく、メソッドが要した正確な時間が必要です (メソッドの開始と終了に開始時間と終了時間を挿入し、差を取ることによって可能性があります)。
自明のコードスニペット:
#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 - マイクロ秒を提供します
このリンクをお勧めします:高精度タイミング...参照用。
たとえば、これは現在の時間をミリ秒単位で返すため、メソッドの最初と最後に呼び出して差を計算できます。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;
}