タイマーを後押し

Boost.Timerは、コードのパフォーマンスを測定するためのクロックを提供します。このライブラリはBoost.Chronoと競合するように最初は、それが見えるかもしれません。Boost.Chronoは任意の期間を測定するためのクロックを提供しながら、しかし、Boost.Timerは、コードを実行するのにかかる時間を測定します。あなたは、コードのパフォーマンスを測定したいときBoost.TimerはBoost.Chronoを使用しますが、あなたはBoost.TimerではなくBoost.Chronoを使用する必要があります。

1. cpu_timer

書式#include </タイマー/ timer.hpp後押し> 
の#include <iostreamの> 
の#include <cmath> 使用して名前空間ブースト::タイマーを。INT メイン()
{ 
  cpu_timerタイマー。以下のためにint型 = Iを0 ;私は< 1000000 ; ++ I)
    のstd :: POW(1.234 、I); 
  std :: coutの << timer.format()<< はstd ::てendl;
  リターン0 ; 
}

 



   

ブースト::タイマー:: cpu_timerがインスタンス化されたときに測定を開始します。あなたは、経過時間を取得するために、任意の時点でのメンバ関数の形式を()を呼び出すことができます。

出力は次のようになります。

0.057313s壁、0.050000ユーザー+ 0.000000sシステム= 0.050000 CPU(87.2パーセント)

壁時間はウォールクロックに従って通過時間です。CPU時間は、プログラムコードの実行に費やさどのくらいの時間を言います。CPU時間は、カーネル空間で過ごしたユーザ空間と時間の中で過ごした時間の間で分割されます。

2.タイマーを停止し、再開

書式#include </タイマー/ timer.hpp後押し> 
の#include <iostreamの> 
の#include <cmath> 使用して名前空間ブースト::タイマーを。INT メイン()
{ 
  cpu_timerタイマー。以下のためにint型 = Iを0 ;私は< 1000000 ; ++ I)
    のstd :: POW(1.234 、I); 
  std :: coutの << timer.format()<< はstd ::てendl; 
  timer.stop(); 以下のためにint型 = Iを0 ;私は< 1000000 ; ++ I)
    のstd :: POW(1.234 、I); 
  std :: coutの

 



  


  << timer.format()<< はstd ::てendl; 

  timer.resume(); 

  以下のためにint型 = Iを0 ;私は< 1000000 ; ++ I)
    のstd :: POW(1.234 、I); 
  std :: coutの << timer.format()<< はstd ::てendl;
  リターン 0 ; 
}

後押し::タイマー:: cpu_timerは停止し、タイマーを再開メンバ関数停止()と履歴書を()、提供します。後押し::タイマー:: cpu_timerもメンバ関数の開始を提供()。ゼロからあなたは()の開始を呼び出すと、タイマーが再起動します。

3.タプルとして壁とCPU時間を取得

書式#include </タイマー/ timer.hpp後押し> 
の#include <iostreamの> 
の#include <cmath> 使用して名前空間ブースト::タイマーを。INT メイン()
{ 
  cpu_timerタイマー。以下のためにint型 = Iを0 ;私は< 1000000 ; ++ I)
    のstd :: POW(1.234 、I); 
  cpu_times回数 = timer.elapsed()。
  std :: coutの << times.wall << はstd ::てendl; 
  std :: coutの << times.user << はstd ::てendl; 
  std :: coutの << times.system << はstd ::てendl;
  リターン0

 



  
 ; 
}

後押し::タイマー:: cpu_timer経過メンバ関数を提供します()。経過()型ブーストのタプルを返します::タイマー::回。壁、ユーザーおよびシステム:このタプルは3メンバーvariblesを持っています。これらのメンバ変数は、ナノ秒単位で壁やCPU時間を含んでいます。後押し::タイマーを::回を0に壁、ユーザーとシステムを設定するには、clear()メンバ関数を提供します。

4. auto_cpu_timer

書式#include <ブースト/タイマー/ timer.hpp> 
の#include <cmath> 使用して名前空間のブーストを::タイマー。INT メイン()
{ 
  タイマーauto_cpu_timer。以下のためにint型 = Iを0 ;私は< 1000000 ; ++ I)
    のstd :: POW(1.234 、I);
  リターン0 ; 
}

 



   

このクラスのデストラクタは、時間を計測停止し、標準出力ストリームに時間を書き込みます。

おすすめ

転載: www.cnblogs.com/sssblog/p/11305083.html