C++ PR

【chrono】C++でマルチプラットフォームな処理時間計測ができるライブラリ

C++ライブラリchronoで処理時間計測
記事内に商品プロモーションを含む場合があります

こんにちは。

現役エンジニアの”はやぶさ”@Cpp_Learningです。

WindowsやLinuxなどで動く『マルチプラットフォーム対応』のソフトウェア開発をすることがあります。

C++で処理時間を計測するとき、毎回Timer系ライブラリを検索しているので…

C++11で追加された”chrono”による処理時間計測についての備忘録を書きます。

”chrono”を採用した理由

以下のようなTimer系ライブラリを探していました↓

【求めているTimer系ライブラリ】

  • マルチプラットフォーム対応しやすい(C++標準ライブラリがベスト)
  • 高精度(msecオーダー)
  • 扱いやすい

色々と調査した結果 ”chrono” がベストだと判断しました。

”chrono”による処理時間計測

”chrono”による処理時間計測の『雛形ソースコード』

実行結果↓

Sun Feb 10 21:41:26 2019
1 msec

処理を開始した時間(タイムスタンプ)と処理時間を表示します(ミリ時間で表示)。

24行目の”std::chrono::milliseconds”の部分を変更すれば、任意の時間単位に変換できます。

名前空間 ”std::chrono” 定義 時間単位
std::chrono::nanoseconds ナノ秒
std::chrono::microseconds マイクロ秒
std::chrono::milliseconds ミリ秒
std::chrono::seconds
std::chrono::minutes
std::chrono::hours
スポンサーリンク

実行環境

本記事で紹介した『雛形ソースコード』はオンライン実行環境“paiza.IO”と以下の記事で紹介しているWSL(Windows Subsystem for Linux)で動作確認しました。

VSCodeからWSLを使う
【WSL】Windows10とUbuntuとVSCodeで快適なプログラミング環境を構築Windows Subsystem for Linux(WSL)とVisual Studio Code(VSCode)で快適なプログラミング環境を構築する方法を説明します。C言語とC++とPythonなどのプログラミング言語を使う人にオススメの記事です。...

C++コンパイラがインストール済みの環境ならWindows/Linuxどちらでも動きます

おわりに

マルチプラットフォーム対応のソフトウェア開発をするときに便利なC++標準ライブラリの”chrono”で処理時間計測する『雛形ソースコード』を紹介しました。

C++のTimer系ライブラリで何を使うか悩んでいる人は参考になるかも(*・ω・)ノ♪

はやぶさ
はやぶさ
理系応援ブロガー”はやぶさ”@Cpp_Learningは頑張る理系を応援します!

 

PICK UP BOOKS

  • 数理モデル入門
    数理モデル
  • Jetoson Nano 超入門
    Jetoson Nano
  • 図解速習DEEP LEARNING
    DEEP LEARNING
  • Pythonによる因果分析
    Python