2012-01-06 8 views
0

私は、ボトルネックがどこにあるのかを見つけるために、非常に大きなコードでGetTickCount()を別々に使用して複数の関数を時間切れにしようとしています。私は正常にコード全体を時間を計ることができます。私が解決しようとしているのは、個々の機能の時間を測定するタイミング機能を追加する場所です。関数が宣言されているとき、定義されているとき、または呼び出されているmain()の内部にタイマーを挿入しますか? 本当にありがとうございます。 ありがとうございます。int mainの複数の関数のGetTickCount()

答えて

1

彼らは、実行時に呼び出されたときあなたは例えば、それらを時間:コードのタイミングを測定する

int main(int argc, char** argv) 
{ 
    ... 
    DWORD start = GetTickCount(); 
    CallAFunction(); 
    DWORD end = GetTickCount(); 
    DWORD elapsed = (end >= start) ? (end - start) : ((MAXDWORD - start) + end); 
    ... 
} 

より良い方法は、コード自体にロジックを記述するのではなく、プロファイラを使用することです。プロファイラはランタイムプロセスにフックし、関数自体の内部に独自のコードを挿入します。その後、関数の実行時間だけでなく、呼び出された回数、関数が呼び出す関数、呼び出しスタックのログなどを追跡することができます。

関連する問題