C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++でコードスニペットの実行時間を計測する方法をわかりやすく解説

C++では、chronoヘッダーが提供する機能を使うことで、コードスニペットの実行時間を簡単に計測できます。基本的な構文は以下のとおりです。

auto start = high_resolution_clock::now(); // 計測開始時刻
// 計測したいコードスニペット
auto stop = high_resolution_clock::now(); // 計測終了時刻
auto duration = duration_cast<microseconds>(stop - start); // 経過時間

chronoヘッダーとは

high_resolution_clockクラスは、<chrono>ヘッダーファイル内で定義されています。このクラスのnow()関数は、呼び出された時点の時刻に対応する値を返します。つまり、処理の前後で時刻を取得し、その差分を取ることで実行時間を求められます。

まず、時間計測に必要なヘッダーを読み込みます。

#include <chrono>
using namespace std::chrono;

サンプルプログラム

以下は、関数の実行時間を計測する具体的な例です。

#include <iostream>
#include <chrono>
using namespace std::chrono;
using namespace std;
int sum(int x, int y) {
    int s = x + y;
    cout << "The sum of numbers : " << s;
}
int main() {
    auto start = high_resolution_clock::now();
    sum(28, 8);
    auto stop = high_resolution_clock::now();
    auto duration = duration_cast<microseconds>(stop - start);
    cout << "\nTime taken by function : "<< duration.count() << " microseconds";
    return 0;
}

実行結果

The sum of numbers : 36
Time taken by function : 42 microseconds

プログラムの解説

上記のプログラムでは、2つの数値の合計を計算するためにsum()関数を定義しています。

int sum(int x, int y) {
    int s = x + y;
    cout << "The sum of numbers : " << s;
}

main()関数の中では、chronoライブラリが提供する定義済みの関数やクラスを利用して、sum()関数の処理にかかった時間を記録しています。流れは以下のとおりです。

  1. high_resolution_clock::now()で処理開始前の時刻を取得します。
  2. 計測対象であるsum(28, 8)を実行します。
  3. 再びnow()を呼び出し、処理完了後の時刻を取得します。
  4. duration_cast<microseconds>で2つの時刻の差をマイクロ秒単位に変換します。
auto start = high_resolution_clock::now();
sum(28, 8);
auto stop = high_resolution_clock::now();
auto duration = duration_cast<microseconds>(stop - start);

最後に、duration.count()を呼び出すことで、計測された経過時間を数値として出力できます。なお、単位はmicroseconds(マイクロ秒)のほか、milliseconds(ミリ秒)やseconds(秒)などにも変更可能です。用途に応じて適切な単位を選択するとよいでしょう。

  1. Microsoft Excelで時間を加算・合計する方法|24時間を超える場合の表示設定も解説

    Excelで作業時間を合計したい場面は意外と多くあります。例えば、1週間にわたって特定のプロジェクトに断続的に取り組んだ場合、給与計算のためには7日間すべての作業時間を合算する必要があります。手書きや電卓でも計算はできますが、Microsoft Excelを使えばもっと簡単かつ正確に集計できます。この記事では、Microsoft Excelで時間を加算(合計)する方法をわかりやすく解説します。 Excelで時間を加算・合計する方法 ここでは、次の2つのケースに分けて説明します。 合計が24時間未満になる場合 合計が24時間を超える場合 1. 合計が24時間未満の場合 まず、データの合計が

  2. Excelで時間差を計算する方法|####エラーとAM/PM表示を解決するコツ

    Microsoft Excelは、予算管理や税額計算など、幅広い用途に活用できる強力な表計算ソフトです。豊富な機能を活かせば、電卓代わりとしても使えます。さらに、Excelでは2つの時刻の差(時間差)を計算することも可能です。たとえば、従業員の勤務開始時刻と終了時刻から実際の勤務時間を算出したり、勤務時間の記録を一元管理して給与や賃金の計算に役立てたりできます。 「時間差の計算なら、終了時刻から開始時刻を引くだけだから簡単」と思うかもしれません。しかし、単純に引き算を実行すると、2つの問題に直面します。この記事では、その問題点と具体的な解決方法をわかりやすく解説します。 Excelで時間差を