C 言語の Clock() 関数

C Yan Yuno Clock Guan Shu



この中で Linux ヒント 記事では、 時計() C 言語で使用できるリソースの 1 つである関数を使用して、特定のプロセスまたはスレッドの実行時間を測定します。

これらの時間の一部は取るに足らないように見えますが、これらのわずかな時間の一部を測定および計算する能力が、システムまたはプロセス自体の精度において重要な要素となる重要なケースがあります。その方法を理論的に説明します 時計() 動作し、その操作と、この目的で使用する測定単位を説明します。







次に、コード フラグメントと画像を含む実用的な例を使用して、この機能を明確かつ詳細な方法で実装して、さまざまなシステムのリアルタイム プロセスのクリティカル タイムを測定する方法を確認します。



Clock() 関数の構文:



clock_t クロック ( 空所 )





C 言語での Clock() 関数の説明

呼び出されたとき、clock() 関数は空です。入力引数は含まれず、呼び出し時にクロックのティック数を「clock_t」に返します。

パルス カウントは、アプリケーションの開始時にゼロから始まり、ユーザーまたはシステムがアプリケーションを終了するまで続き、約 72 分ごとにオーバーフローによってゼロにリセットされます。 clock() 関数は、このカウンターを変更したり制御したりしません。呼び出されたときにのみ値を取得します。



プログラムの合計実行時間を測定するには、プログラムの最後に 1 回だけ clock() を呼び出す必要があります。プログラムのある時点から別の時点までの経過時間を測定するには、clock( ) 関数を呼び出して、取得した 2 つのデータを計算する必要があります。

の 2 つの呼び出し間の経過ティックを決定する計算 時計() 関数は、2 番目の呼び出しの結果から最初の呼び出しの結果を減算することによって行われます。プログラムのある時点から別の時点までの経過時間を決定する例を見てみましょう。

時計() 関数は「time.h」ヘッダー関数で定義されています。これを使用するには、次の図に示すように、「.c」または「.h」コード ファイルに含める必要があります。

#include

Clock() 関数を使用して、プログラム内のあるポイントから別のポイントまでの経過クロック ティックを取得する方法

この例では、プログラムのあるポイントから別のポイントまでの経過ティック数を取得する方法を示します。これらの 2 つのポイントは、 時計() それぞれ機能します。これを理解するために、次のコードを見てみましょう。





#include

#include



ボイドメイン ( )



{

clock_t ticks_ini, ticks_end;

ダブルティック;

ticks_ini = 時計 ( ) ; /// 測定開始

printf ( 'ティック初期測定 %ld \n ' 、 ticks_ini ) ;

為に ( 整数 a = 0 ; a < = 456450 ; ++ ) ;



ticks_end = クロック ( ) ; /// 測定停止

ticks = ticks_end - ticks_ini;

printf ( '小節の終わりのティック %ld \n ' 、 ticks_end ) ;

printf ( '小節間に経過したティック %f \n ' 、ティック ) ;

戻る ;

}



まず、2 つの変数を作成します。 ticks_ini ticks_end 、2 つの呼び出しで clock() の結果を格納します。それを計算して、経過したティック数と整数を取得します ティック に、合計経過ティックの最終結果を保存します。

次に、 時計() 「メイン」で機能し、以前に定義されたクロックティックを取得します ticks_ini プログラムの開始からこの関数の最初の呼び出しまでに経過した変数。この値を表示するには、printf() 関数を使用します。

この遅れの後、私たちが作成した 為に 、私たちは 時計() 関数をもう一度実行して、この時点までのティック数を取得します。 printf() 関数で結果を画面に出力します。次に、最初の呼び出しと 2 番目の呼び出しの間に経過した正確なティック数の結果を取得します。 時計() 引き算して ticks_ini から ticks_end 結果を変数 ticks に保存し、printf() でコンソールに出力します。

このようにして、コード内のあるポイントから別のポイントまで経過したティックを取得します。

Clock() 関数を使用して、取得したティック数を秒に変換する方法

プログラムが開始されてから、またはある時点から別の時点までに経過したティック数を取得したら、前の例の結果を定義済みの time.h 定数で割ることにより、ティックで表されたこの時間を秒に変換できます。 CLOCKS _PER_ SEC、 次のスニペットに示すように:

ティック = ( ticks_end - ticks_ini ) / ( ダブル ) CLOCKS_PER_SEC;

printf ( '測定間に経過した秒単位のティック %f \n ' 、ティック ) ;

結論

この中で Linux ヒント の記事で、 時計() システムクロックの目盛りで時間測定を行う関数。また、実行中のアプリケーション内でこれらの時間のすべてまたは一部を測定する方法についても説明しました。結果を秒に変換する方法を示しました。この記事がお役に立てば幸いです。 Web サイトの検索エンジンを使用して見つけることができる記事で、C 言語に関するその他のヒントを見つけることができます。