3

UNIX のエポックを秒単位で取得する関数または方法が必要です。これは、PHP で time 関数を使用する方法と同じです。

フォーマットされた日付のみを出力するように見えるctimeのtime()、または秒を持っているが常に100万の倍数であるように見えるclock()関数以外のメソッドは見つかりません。

プログラムの実行時間を測定したいのですが、開始と終了の間の差分を計算したかっただけです。C++ プログラマーはこれをどのように行うでしょうか?

編集: time() と difftime は、ミリ秒などではなく、秒単位の解決のみを許可します。

4

3 に答える 3

2

time()は正常に動作するはずです。時間差の計算にはdifftimeを使用してください。より良い解像度が必要な場合は、gettimeofdayを使用してください。

また、次の複製: C プログラムの経過時間をミリ秒単位で計算する

于 2010-06-13T06:40:05.210 に答える
2

get をプロファイリングする場合は、 getrusageを使用することをお勧めします。これにより、ウォールクロック時間の代わりに CPU 時間を追跡できます。

struct rusage ru;
getrusage(RUSAGE_SELF, &ru);

ru.ru_utime.tv_sec;  // seconds of user CPU time
ru.ru_utime.tv_usec; // microseconds of user CPU time
ru.ru_stime.tv_sec;  // seconds of system CPU time
ru.ru_stime.tv_usec; // microseconds of system CPU time
于 2010-06-13T06:49:58.263 に答える