Boost 1.47.0で導入予定のBoost.Chronoでの簡単な実行時間の測定です。
#include <boost/chrono/process_times.hpp> #include <cmath> int main() { boost::chrono::run_timer t; for (int i = 0; i < 100000; ++i) std::sqrt(123.456L); // 時間のかかる処理 }
real 0.008s, cpu 0.016s (185.1%), user 0.016s, system 0.000s
デフォルトではstd::coutに出力されますが、出力先はカスタマイズできます。
以下は、ファイルに出力する例:
#include <boost/chrono/process_times.hpp> #include <cmath> #include <fstream> int main() { std::ofstream file("report.txt"); boost::chrono::run_timer t(file); for (int i = 0; i < 100000; ++i) std::sqrt(123.456L); // 時間のかかる処理 }
report.txt
real 0.013s, cpu 0.016s (120.1%), user 0.016s, system 0.000s
出力フォーマットもカスタマイズできます。
#include <boost/chrono/process_times.hpp> #include <cmath> #include <fstream> int main() { std::ofstream file("report.txt"); const std::string fmt = "\nりある %rs, しーぴーゆー %cs (%p%), ユーザー %us, システム %ss\n"; boost::chrono::run_timer t(file, fmt); for (int i = 0; i < 100000; ++i) std::sqrt(123.456L); // 時間のかかる処理 }
report.txt
りある 0.008s, しーぴーゆー 0.016s (187.9%), ユーザー 0.016s, システム 0.000s