時間計測について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kuro
記事: 47
登録日時: 14年前

時間計測について

#1

投稿記事 by kuro » 14年前

とても基本的な質問だと思うのですが・・・

Windowsで、あるプログラムにおいて、<time.h>をインクルードして、

start = clock();

[計測したい処理]

end = clock();
double time = (double)(end-start)/CLOCK_PER_SEC;

として、時間の計測を行ったのですが、この場合のtimeの単位は[ms]なのでしょうか?それともなのでしょうか?

どなたかよろしくお願いいたします。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 時間計測について

#2

投稿記事 by みけCAT » 14年前

おそらく秒だと思います。
参考:苦C
[search=google]clock C言語[/search]
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

kuro
記事: 47
登録日時: 14年前

Re: 時間計測について

#3

投稿記事 by kuro » 14年前

なるほど。ありがとうございます。

ということは、CLOCKS_PER_SECで割らなければ(/CLOCKS_PER_SECを削除すると)、[ms]が得られるということですか?

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: 時間計測について

#4

投稿記事 by beatle » 14年前

clock()で得られる数値の単位は,規格的には決まっていなかったと思います.msecが妥当なので使っている処理系が多いだけだと思います.

CLOCK_PER_SECは,その名の通り「クロック/秒」ですから,
(double)(end-start)/CLOCK_PER_SEC
= [clock] / [clock / sec]
= [sec]
ということになります.

先にも書きましたが,clock()の単位が(規格的に)分からないため,CLOCK_PER_SECで割ることで,秒単位に直します.

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 時間計測について

#5

投稿記事 by softya(ソフト屋) » 14年前

Windowsにおいてms単位の時間を計測するならtimeGetTimeを使うのが一般的ではないでしょうか?
「timeGetTime 関数」
http://msdn.microsoft.com/ja-jp/library/cc428795.aspx
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る