[解決済み】C++で関数の実行時間を測定する
2022-04-20 21:53:34
質問
C++のプログラムで、ある関数の実行にかかる時間を調べたい。 リナックス . その後、速度比較をしたいのですが.いくつかの時間関数を見ましたが、結局boostのこれにしました。クロノです。
process_user_cpu_clock, captures user-CPU time spent by the current process
さて、上記の関数を使用した場合、その関数に費やされたCPUの時間だけを取得することができるのでしょうか?
次に、上記の関数の使用例を見つけることができませんでした。どなたか、上記の関数の使い方を教えていただけませんか?
追伸:今現在、私は
std::chrono::system_clock::now()
を使用して時間を秒単位で取得しますが、これでは毎回CPU負荷が異なるため、異なる結果が得られます。
解決方法は?
C++11では、非常に使いやすい方法です。
std::chrono::high_resolution_clock
から
<chrono>
ヘッダを作成します。
このように使用します。
#include <chrono>
/* Only needed for the sake of this example. */
#include <iostream>
#include <thread>
void long_operation()
{
/* Simulating a long, heavy operation. */
using namespace std::chrono_literals;
std::this_thread::sleep_for(150ms);
}
int main()
{
using std::chrono::high_resolution_clock;
using std::chrono::duration_cast;
using std::chrono::duration;
using std::chrono::milliseconds;
auto t1 = high_resolution_clock::now();
long_operation();
auto t2 = high_resolution_clock::now();
/* Getting number of milliseconds as an integer. */
auto ms_int = duration_cast<milliseconds>(t2 - t1);
/* Getting number of milliseconds as a double. */
duration<double, std::milli> ms_double = t2 - t1;
std::cout << ms_int.count() << "ms\n";
std::cout << ms_double.count() << "ms\n";
return 0;
}
これは、関数の持続時間を測定します
long_operation
.
可能な出力
150ms
150.068ms
作業例です。 https://godbolt.org/z/oe5cMd
関連
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み] 関数が実行されるまでの時間を測定する方法
-
[解決済み] なぜPythonのコードは関数の中でより速く実行されるのですか?
-
[解決済み] コールバックを含むJavaScriptコードの実行時間を測定するにはどうすればよいですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】正気で、安全で、効率的な方法でファイルをコピーする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】C言語プログラムの実行時間について