• ベストアンサー

c言語 時間測定

c言語の時間測定方法についてです。clock_t で start(始めの時間)とend(終わりの時間)を定義して、 end-start で処理時間を求めようとしています。 while文の処理時間ですが、while前からwhile後までの処理時間は出せるのですが、1回1回のwhileの処理時間が0になってしまい困ってます。何かいい方法はありませんか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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)

回答No.2

ものすごく一般論ですが、Whileの頭から終わりまでの時間をループ回数で割ったらどうですか?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

具体的にどうやっているのか知らんけど, clock で測れないほど短かったらしょうがないのでは? 処理系によってはほかの方法でが使えるかもしれん.

関連するQ&A