時間経過をミリ秒で取得するには?

解決


atsushi  2004-11-30 20:01:50  No: 55402

時間経過をミリ秒で取得する方法を知っている方教えてください。

 time_t   start, finish;
 double elapsed_time;

   
   time( &start );
    ・・・・・   
   time( &finish );

   elapsed_time = difftime( finish, start );

今はこんな感じなんですが、どなたかお教え願います。


Blue  2004-11-30 20:06:28  No: 55403

SYSTEMTIMEとGetLocalTimeで調べてみてください。


たく  2004-12-01 01:40:12  No: 55404

普段作ってるものが連続起動を考慮しなくてよいものばかりなので、
何も考えずに、
DWORD dwStart = GetTickCount();
(中略)
DWORD dwEnd = GetTickCount();
DWORD elapsed_time = dwEnd - dwStart;
としています。


kkkのk  2004-12-03 04:47:44  No: 55405

DWORD timeGetTime(VOID); 
が精度いいかも
winmm.libを追加しなきゃいけないけど・・・


なーめ  2004-12-04 01:21:59  No: 55406

QueryPerformanceCounter() はどうかな。

精度はあなたのPCの能力次第ですが。
time系の関数はカウンタ値を呼び出し時に時刻に変換している
と考えられるので、高精度を求めるなら、変換は計測後に行ないたい。

カウンタ値の生の値で開始、停止時を取得して、
後で、QueryPerformanceFrequency()の値で割り算してやります。

なお、事前に 2回連続で呼び出して差をとっておき、この
関数自体の呼び出しオーバヘッドを測定しておく必要もあります。
数十回測定して、この数値の最大-最小が誤差ですね。
他のアプリが動作していないのが望ましい。

確認:
(star/q) - ( end/q ) と
(start - end ) / q は同じか?

LARGE_INTEGER。
__int64 で宣言してほしかった。

あと、prep ってコマンドについても調べてみてください(Win2K)。


atsushi  2004-12-07 18:57:18  No: 55407

遅くなりました!
たくさんの方法でできました。
みなさんもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加