1

Android フレームワークで C++ メソッドの実行時間を取得するにはどうすればよいですか?

gettime of the day または getsystem time 呼び出しは適切ですか?

タイマーがそれ自体で余分な時間を費やすのではなく、メソッドが要した正確な時間が必要です (メソッドの開始と終了に開始時間と終了時間を挿入し、差を取ることによって可能性があります)。

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 - マイクロ秒を提供します

このリンクをお勧めします:高精度タイミング...参照用。

于 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 に答える