経過時間を出力する便利なデバッグクラス:C++コード

最初に

C++で書かいた、経過時間を出力する便利なデバッグクラスコードです。

今回のサンプルは、通常の sqrt関数と、前に作成した、整数用の平方根の値を導くIntSquareとの速度の違いを出力します。

情報

cppreference.com

C++コード

#include 
/**
 * 経過時間を出力する便利なデバッグクラス
 */
class UtilDebugTime
{
    typedef std::chrono::time_point<std::chrono::system_clock> SystemClock;
    SystemClock m_start;
    SystemClock m_end;
public:
    /**
    * コンストラクタ
    */
    UtilDebugTime() { Restart(); }
    /**
    * 計測開始時間をリスタートする
    */
    void Restart() { m_start = std::chrono::system_clock::now(); }
    /**
    * 計測終了
    */
    void End() { m_end = std::chrono::system_clock::now(); }
    /**
    * ミリセカンドで経過時間を取得する
    */
    long long GetMillSecond() {
        return std::chrono::duration_cast<std::chrono::milliseconds>(m_end - m_start).count();
    }
    /**
    * 秒単位で、ミリセカンドも含む経過時間を出力する。
    */
    void OutputMillSecond() {
        long long t, ms;
        t = GetMillSecond();
        
        ms = t % 1000; t /= 1000;
        std::printf("%lld.%04lld s\n", t, ms);
    }
};

オンライン実行

コメント 

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください