Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

時間による計測

0 views
Skip to first unread message

Kazu

unread,
Jun 17, 2000, 3:00:00 AM6/17/00
to
 いつもお世話になっております。
 現在、ms単位による送信・受信の遅延を計測しようと思って
 います。

 そこで、GetLoaclTimeを使用したところ計測している時間が同じ
 になってしまいました。

 例えば、3回連続で送信した場合の1送信ごとの時間を計測した
 ところ、秒どころか、msまで同じになってしまいました。
 
 時間による計測をするうえで、もっと制度のよい現在時刻を取得
 できる方法はないのでしょうか?


Shin-ichi Ueta

unread,
Jun 17, 2000, 3:00:00 AM6/17/00
to
時間を扱うプログラムは結構大変ですよね^^)

「精度」が高いのはマルチメディアタイマ(timeGetTime)や
高分解能パフォーマンスタイマー(QueryPerformanceCounter)です。
多少精度が低くてもよい場合はGetTickCount関数が手軽です。
高分解能パフォーマンスタイマーはハードウェアに依存するようです。
マルチメディアタイマについてはよくわかりません^^)

GetTickCount関数やtimeGetTime関数ではWindows起動時からの
経過時間をミリ秒単位で取得できます。DWORD値なので約49.7日間で
0に戻ります。
送信時のカウントを保存しておき、受信時のカウントとの差を求めることで、
遅延時間をミリ秒単位で計測できます。

GetTickCount関数の精度はシステムタイマに依存します。

Windows NT 3.5 and later: The system timer runs at approximately 10ms.
Windows NT 3.1: The system timer runs at approximately 16ms.
Windows 95/98: The system timer runs at approximately 55ms.

ローカル日時(GetLocalTime関数)の精度は1秒かも。

いずれにしろ、Windowsのマルチスレッドの環境では、タイマの精度が
低いことを前提にプログラムを設計したほうがよろしいかと。

--
植田システム設計事務所 植田真一
usde...@par.odn.ne.jp


aok

unread,
Jun 17, 2000, 3:00:00 AM6/17/00
to
青木です。
vcppMLへもポストしています。

>  いつもお世話になっております。
>  現在、ms単位による送信・受信の遅延を計測しよう
> と思っています。

きりのいい単位ではありません。約マイクロ秒単位。
QueryPerformanceCounter
QueryPerofrmanceFrequency

使ったことはありませんが、NTなら
GetProcessTimes
GetThreadTimes

---> よく考えたら、プロセスの消費時間であり、絶対時間ではな
いですね。ボツ。


装置が調達できるなら
伝送路をロジックアナライザで見るのが一番確実。

----+----1----+----2----+----3----+----4----+----5
青木 GZL0...@nifty.ne.jp
Performance Programming (2000-6)
http://homepage1.nifty.com/aok2/


Kazu

unread,
Jun 18, 2000, 3:00:00 AM6/18/00
to
 回答ありがとうございます。
 たぶん、vcppMLで投稿したのも私だと思います。
 そちらの方でも今後ともよろしく。m(_ _)m

 と、余談はここまでとして。
 どちらにしてもms単位の制度を求める場合、
> QueryPerformanceCounter
> QueryPerofrmanceFrequency
 か、timeGetTime等の関数を使用しなければならないということですね。
 現在使用しているPCはPⅢ450MHzなんでμsの時間がとれると嬉しいで
す。(精度がよければ良いでOKです)
 もうちょっと頑張ってみます。

"aok" <gzl0...@microsoft.com> wrote in message
news:eqgn$4D2$GA....@cppssbbsa02.microsoft.com...

Kazu

unread,
Jun 18, 2000, 3:00:00 AM6/18/00
to

 回答ありがとうございます。m(_ _)m
 とりあえず、一通りの時間を扱う関数は使ってみました。
 結局はtimeGetTimeで1~3msの精度になってしまいます。
 QueryPerformanceCounterの方はちょっとやっていないのでやってみようと思いま
す。
 


0 new messages