メッセージのタイムスタンプをログファイルに書き込むにはどうすればよいですか?

ekter15

C ++プログラムのログファイルを作成しようとしています。私の目標は、プログラムの2つのポイントに2つのタイムスタンプを配置し、これら2つのポイント間のCPU時間をファイルに出力することです。これを行っているのは、コードのどの部分に最も時間がかかり、改善できるかを知りたいからです(したがって、測定したいコードのチャンクがいくつかある可能性があります)。これまで、呼び出されたときに、引数として渡した文字列をファイルに出力する関数を作成しました。

#define LOGFILE "myprog.log"
void Log (std::string message){
    std::ofstream ofs;
    ofs.open(LOGFILE, std::ofstream::out | std::ios::app);
    ofs << message << std::endl;
    ofs.close();
}

ただし、CPUタイムスタンプを印刷する方法を理解するのに苦労しています。まず、使用する時間測定形式がわかりません(chronoタイプとtime_tタイプのどちらを使用する必要がありますか?)期間を出力しようとしているので、期間のタイプがあると便利です(I ' chrono :: durationを試しましたが、C ++ 11のサポートが必要なようです)。次に、使用するタイプがわかっている場合、それをファイルに出力するにはどうすればよいですか?その型を文字列にキャストする方法はありますか?または、関数に直接渡して、なんらかの方法で印刷できますか?

これはここ数日私を大いに悩ませました、そして私はそれを理解することができないようです、それでどんな入力も本当に役に立ちます。前もって感謝します!

Xirema

CPUタイムスタンプを取得する

std::chrono::system_clockこのタイムスタンプを取得するために使用することをお勧めします高精度のタイミング測定を行うためのstd::chrono::steady_clockまたはを使用しないでくださいstd::chrono::high_resolution_clock。また、実時間に対する忠実度または精度を保証するものではありません。

auto now = std::chrono::system_clock::now();
//now is a time_point object describing the instant it was recorded according to your system clock

このCPUタイムスタンプを読み取り可能な形式で印刷します

C ++ 20では、これは非常に簡単です。

std::string formatted_time = std::chrono::format("%F_%T", now);
ofs << formatted_time << ": " << message << std::endl;
  • %Fはの代わりに%Y-%m-%Dなります。これは、ISO形式で年月日を出力します2018-10-09
  • %Tは、%H:%M:%S時間を出力します。つまり、17:55:34.786

std::chrono::formatその他のオプション/詳細については、仕様を参照してください。

C ++ 20より前

ハワード・ヒナントのdateライブラリについて考えてみましょう。そのほとんどは、chronoライブラリの新しい部分としてC ++ 20に組み込まれています。formatこの関数はC ++ 20バージョンについて先に示唆したのと同じ構文を使用しているライブラリで見つかりました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

kerasのフィットジェネレーターのマルチプロセッシングモードを使用して、同じファイルに書き込む複数のプロセスを解決するにはどうすればよいですか?

分類Dev

YAML形式のデータをファイルに書き込むにはどうすればよいですか?

分類Dev

このデータをcsvファイルに書き込むにはどうすればよいですか

分類Dev

Shotwellにメタデータタグをビデオファイルに強制的に書き込むにはどうすればよいですか?

分類Dev

このプログラムで、特定の単語を含む各行をファイルに書き込むにはどうすればよいですか?

分類Dev

外部jsファイルをhtml <script>タグに書き込むにはどうすればよいですか?プレーンJSまたはjQuery経由

分類Dev

ターミナル/ファイルに書き込まれたこの特定のメッセージを消音するにはどうすればよいですか(bashスクリプトを介して「Rscript」を呼び出す場合)

分類Dev

iOSアドレスブックにカスタムソーシャルプロファイルエントリを書き込むにはどうすればよいですか?

分類Dev

Flaskの優れたデバッグログメッセージを本番環境のファイルに書き込むにはどうすればよいですか?

分類Dev

JSONデータをファイルに書き込むにはどうすればよいですか?

分類Dev

Debian:エラーメッセージをファイルに書き込むにはどうすればよいですか?

分類Dev

Debian:エラーメッセージをファイルに書き込むにはどうすればよいですか?

分類Dev

writerowを使用してタイムスタンプ付きの整数ストリームを.csvファイルに書き込むにはどうすればよいですか?

分類Dev

特定のファイルに書き込むプログラムを監視するにはどうすればよいですか?

分類Dev

出力をファイルに書き込むようにPythonプログラムを変更するにはどうすればよいですか?

分類Dev

Nodejsのreadable.streamからファイルにバッファデータを書き込むにはどうすればよいですか?

分類Dev

バッチでログファイルに書き込むだけの長時間かかるプロセスにtail-fのようなものを使用するにはどうすればよいですか?

分類Dev

コンソールとログファイルの両方に書き込む関数を作成するにはどうすればよいですか?

分類Dev

複数のプロセスを使用して、現在の時間で指定されたファイルに1時間ごとにデータを書き込むにはどうすればよいですか?

分類Dev

Googleスプレッドシートからテンプレート化されたHTMLファイルの時間入力フィールドにデータを書き込むにはどうすればよいですか

分類Dev

パンダのデータフレームを、複数のデータ型に固有のフォーマットでバイナリファイルに書き込むにはどうすればよいですか?

分類Dev

compileInFnからログメッセージを書き込むにはどうすればよいですか?

分類Dev

メッセージインジケータに(メール)プログラムを追加するにはどうすればよいですか?

分類Dev

Apache Beamのランタイム値プロバイダーを使用してBigQueryに書き込むにはどうすればよいですか?

分類Dev

新しいファイルを書き込むためにPythonプログラムを作成するにはどうすればよいですか

分類Dev

デバッグモードでアプリを実行しているPC上のファイルに(デバッグ目標のために)フラッターで書き込むにはどうすればよいですか?

分類Dev

Yii2アプリケーションのWebプロセスでsqliteデータベースファイルが書き込み可能かどうかを確認するにはどうすればよいですか?

分類Dev

Arduinoの読み取り値をコンピューター上のファイルに書き込むにはどうすればよいですか?

分類Dev

ファイルに書き込むときにデータフレームからインデックス行を削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    kerasのフィットジェネレーターのマルチプロセッシングモードを使用して、同じファイルに書き込む複数のプロセスを解決するにはどうすればよいですか?

  2. 2

    YAML形式のデータをファイルに書き込むにはどうすればよいですか?

  3. 3

    このデータをcsvファイルに書き込むにはどうすればよいですか

  4. 4

    Shotwellにメタデータタグをビデオファイルに強制的に書き込むにはどうすればよいですか?

  5. 5

    このプログラムで、特定の単語を含む各行をファイルに書き込むにはどうすればよいですか?

  6. 6

    外部jsファイルをhtml <script>タグに書き込むにはどうすればよいですか?プレーンJSまたはjQuery経由

  7. 7

    ターミナル/ファイルに書き込まれたこの特定のメッセージを消音するにはどうすればよいですか(bashスクリプトを介して「Rscript」を呼び出す場合)

  8. 8

    iOSアドレスブックにカスタムソーシャルプロファイルエントリを書き込むにはどうすればよいですか?

  9. 9

    Flaskの優れたデバッグログメッセージを本番環境のファイルに書き込むにはどうすればよいですか?

  10. 10

    JSONデータをファイルに書き込むにはどうすればよいですか?

  11. 11

    Debian:エラーメッセージをファイルに書き込むにはどうすればよいですか?

  12. 12

    Debian:エラーメッセージをファイルに書き込むにはどうすればよいですか?

  13. 13

    writerowを使用してタイムスタンプ付きの整数ストリームを.csvファイルに書き込むにはどうすればよいですか?

  14. 14

    特定のファイルに書き込むプログラムを監視するにはどうすればよいですか?

  15. 15

    出力をファイルに書き込むようにPythonプログラムを変更するにはどうすればよいですか?

  16. 16

    Nodejsのreadable.streamからファイルにバッファデータを書き込むにはどうすればよいですか?

  17. 17

    バッチでログファイルに書き込むだけの長時間かかるプロセスにtail-fのようなものを使用するにはどうすればよいですか?

  18. 18

    コンソールとログファイルの両方に書き込む関数を作成するにはどうすればよいですか?

  19. 19

    複数のプロセスを使用して、現在の時間で指定されたファイルに1時間ごとにデータを書き込むにはどうすればよいですか?

  20. 20

    Googleスプレッドシートからテンプレート化されたHTMLファイルの時間入力フィールドにデータを書き込むにはどうすればよいですか

  21. 21

    パンダのデータフレームを、複数のデータ型に固有のフォーマットでバイナリファイルに書き込むにはどうすればよいですか?

  22. 22

    compileInFnからログメッセージを書き込むにはどうすればよいですか?

  23. 23

    メッセージインジケータに(メール)プログラムを追加するにはどうすればよいですか?

  24. 24

    Apache Beamのランタイム値プロバイダーを使用してBigQueryに書き込むにはどうすればよいですか?

  25. 25

    新しいファイルを書き込むためにPythonプログラムを作成するにはどうすればよいですか

  26. 26

    デバッグモードでアプリを実行しているPC上のファイルに(デバッグ目標のために)フラッターで書き込むにはどうすればよいですか?

  27. 27

    Yii2アプリケーションのWebプロセスでsqliteデータベースファイルが書き込み可能かどうかを確認するにはどうすればよいですか?

  28. 28

    Arduinoの読み取り値をコンピューター上のファイルに書き込むにはどうすればよいですか?

  29. 29

    ファイルに書き込むときにデータフレームからインデックス行を削除するにはどうすればよいですか?

ホットタグ

アーカイブ