1

グーグルでいくつかのコードを試しました:

clock_t start, end;
start = clock();
//CODES GOES HERE
end = clock();
std::cout << end - start <<"\n";
std::cout << (double) (end-start)/ CLOCKS_PER_SEC;

しかし、結果の経過時間は常に 0 でした。

std::cout << (double) (end-start)/ (CLOCKS_PER_SEC/1000.0 );

理由はわかりませんが、Java で同様のものを取得すると、 getCurrentTimeMillis() がうまく機能します。おそらくコンピューターの計算が非常に高速であるため、ミリ秒で表示したいと思います。

4

3 に答える 3

1
#include <boost/progress.hpp>

int main()
{
    boost::progress_timer timer;
    // code to time goes here
}

これにより、メインの実行にかかった時間が出力されます。コードをスコープに配置して、いくつかの部分の時間を計ることができます{ boost::progress_timer timer; ... }

于 2011-03-12T16:14:21.757 に答える
1

clock関数のプロファイリングに十分な解像度が保証されているとは思いません。関数の実行速度を知りたい場合は、1 回ではなくおそらく数千回実行し、かかる合計時間を測定して平均を取る必要があります。

于 2011-03-12T14:24:57.627 に答える
0

この質問はあなたの質問と似ています: Linux で実行される C++ プログラムでの関数のタイミング

この答えを見てください!

于 2011-03-12T15:21:32.237 に答える