プログラミング、ゲームシステムなど普段考えたことについてのメモ帳代わり。
No.1
2009/03/08 (Sun) 00:20:15
標準ライブラリ<time.h>の時間計測関数には、time()とclock()の2つが存在します。
time()とclock()の違いについて、自分が利用している統合開発環境『Visual Windows for BC++』に付属しているリファレンスでは、
「clock()はパラメタをとらないことを除いて、time()とまったく同じです。」
と記載されていました。
でも、それではなぜ2つもあるのか、ということになります。
そこで、ググってみたところ・・・
こちらのページ↓
http://www.mm2d.net/c/c-02.shtml(碧色工房様)に、
「clock() で求まる時間はそのプロセスが消費したプロセッサ時間になります. 一方,time(time_t *) で求まる時間は歴時間です.」
とありました。
碧色工房様ではVC++を利用していたようだったので、BCCでは実装が違うなんてアレなこと・・・はないよなぁ?
ということで、疑念を晴らすために実験してみました。
ら、異なる値が表示されました。
リファレンスが間違っていたということだな、ということで解決。
・・・かと思いきや、自分の勘違いだと気づく。
そもそも意味を取り違えていたのだということに。
確かに表示される値は異なるのですが、それがプロセッサ時間と歴時間との違いなのかどうかを調べたわけではありませんでした。
ヘッダがちょっと、見てみたは良かったんですが、C++への理解と慣れがなんとも言えない自分にはtemplateクラスをだーっと見ていくのがつらすぎてやめてしまったため、特に実装については見ていないのでした・・・。
ということでもう一度・・・
めんどくっせぇ!
以上。ダメな結論でした。
実際に必要だったのはclock()がプロセッサ時間か歴時間かということではなく、どれだけの精度が出るのかということだったので、これでよしとしてしまいましょう。
一応、clock()はプロセスをほぼ占有状態であればmsほど(主にWindows系のことらしい)の精度が出るようですので。
まとめ
・time()は秒精度
・clock()はミリ秒精度
・clock()はプロセッサ時間で計測
以上3点でした。
time()とclock()の違いについて、自分が利用している統合開発環境『Visual Windows for BC++』に付属しているリファレンスでは、
「clock()はパラメタをとらないことを除いて、time()とまったく同じです。」
と記載されていました。
でも、それではなぜ2つもあるのか、ということになります。
そこで、ググってみたところ・・・
こちらのページ↓
http://www.mm2d.net/c/c-02.shtml(碧色工房様)に、
「clock() で求まる時間はそのプロセスが消費したプロセッサ時間になります. 一方,time(time_t *) で求まる時間は歴時間です.」
とありました。
碧色工房様ではVC++を利用していたようだったので、BCCでは実装が違うなんてアレなこと・・・はないよなぁ?
ということで、疑念を晴らすために実験してみました。
ら、異なる値が表示されました。
リファレンスが間違っていたということだな、ということで解決。
・・・かと思いきや、自分の勘違いだと気づく。
そもそも意味を取り違えていたのだということに。
確かに表示される値は異なるのですが、それがプロセッサ時間と歴時間との違いなのかどうかを調べたわけではありませんでした。
ヘッダがちょっと、見てみたは良かったんですが、C++への理解と慣れがなんとも言えない自分にはtemplateクラスをだーっと見ていくのがつらすぎてやめてしまったため、特に実装については見ていないのでした・・・。
ということでもう一度・・・
めんどくっせぇ!
以上。ダメな結論でした。
実際に必要だったのはclock()がプロセッサ時間か歴時間かということではなく、どれだけの精度が出るのかということだったので、これでよしとしてしまいましょう。
一応、clock()はプロセスをほぼ占有状態であればmsほど(主にWindows系のことらしい)の精度が出るようですので。
■■■
まとめ
・time()は秒精度
・clock()はミリ秒精度
・clock()はプロセッサ時間で計測
以上3点でした。
PR
≪出来る人と出来ない人の違い
| HOME |