- ベストアンサー
c言語 時間測定
c言語の時間測定方法についてです。clock_t で start(始めの時間)とend(終わりの時間)を定義して、 end-start で処理時間を求めようとしています。 while文の処理時間ですが、while前からwhile後までの処理時間は出せるのですが、1回1回のwhileの処理時間が0になってしまい困ってます。何かいい方法はありませんか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
高分解能タイマは環境依存ですがWindowsであればQueryPerformanceCounter関数とQueryPerformanceFrequency関数が利用できるかもしれません。(普通使えます。) QueryPerformanceCounter関数 http://msdn.microsoft.com/ja-jp/library/cc410966.aspx QueryPerformanceFrequency関数 http://msdn.microsoft.com/ja-jp/library/cc410968.aspx 注意 clock関数と仕様が異なり実時間のタイマです。 補足 clock関数はCPU時間です。詳細は↓ http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1338787438 補足 Microsoftのclock関数の実装定義 http://msdn.microsoft.com/ja-jp/library/vstudio/scty34yt.aspx POSIXであればclock_gettime関数とclock_getcpuclockid関数が利用できるかもしれません。 http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/clock_gettime.2.html http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/clock_getcpuclockid.3.html
その他の回答 (2)
- KAZUMI2003
- ベストアンサー率37% (77/208)
ものすごく一般論ですが、Whileの頭から終わりまでの時間をループ回数で割ったらどうですか?
- Tacosan
- ベストアンサー率23% (3656/15482)
具体的にどうやっているのか知らんけど, clock で測れないほど短かったらしょうがないのでは? 処理系によってはほかの方法でが使えるかもしれん.