- PR -

1/100秒まで時刻を取りたい

1
投稿者投稿内容
おひろ
ベテラン
会議室デビュー日: 2003/07/23
投稿数: 63
投稿日時: 2004-04-13 17:20
VB.NETで、プログラムのどの関数で時間がかかっているか確認する目的で、
各関数のはじめと終わりに1/100秒までのタイムスタンプを取りたいと考えています。
1/100秒まで時刻を取る方法はないものでしょうか。
よろしくお願いいたします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-04-13 17:44
諸農です。

最近のコンピュータってどの程度の精度が保証されているのか
ちょっとよく知らないのですが、Environment.TickCountを使う
と取れそうですね。

ではでは(^^)/
_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
AC
会議室デビュー日: 2003/01/14
投稿数: 15
お住まい・勤務地: 東京都
投稿日時: 2004-04-13 19:01
Environment.TickCountって初めて聞きました。
うちは大抵、DateTime.Now.ToString("yyyyMMddHHmmssfff")だなぁ、
と思って調べてみました。

------------------------------------------------------------
TickCount プロパティの解像度は、500 ミリ秒
DateTime.Now ----- Windows NT 3.5 以降  10ミリ秒
                Windows 98       55 ミリ秒
------------------------------------------------------------
だそうです。

0001 年 1 月 1 日午前 12:00 から経過した 100 ナノ秒間隔の数を取る
DateTime.Ticksというのも。


勉強になりました。
(おかげでバグが発覚・・・)
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-04-13 19:30
時刻関連は、取得できる値の分解能と実際に返される値の精度が全く違う事が多いですので、10ミリ秒とかの精度が必要となると使える方法は限られてると思います。

どこかのWebサイトで、この辺の精度を色々検証していたところがあったと思うのですが…Googleで検索したらヒットするかもしれません。

私はQueryPerformanceCounter APIとか使っちゃいます(Win2K以降じゃないと駄目だっけか)…
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-04-13 23:24
諸農です。

引用:

------------------------------------------------------------
TickCount プロパティの解像度は、500 ミリ秒
DateTime.Now ----- Windows NT 3.5 以降  10ミリ秒
                Windows 98       55 ミリ秒
------------------------------------------------------------
だそうです。



あらららら
Win32のGetTickCount()と同じだと勘違いしていたようですm(__)m

引用:

0001 年 1 月 1 日午前 12:00 から経過した 100 ナノ秒間隔の数を取る
DateTime.Ticksというのも。


勉強になりました。



いえ、こちらこそ勉強になりました。
ありがとうございます。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
おひろ
ベテラン
会議室デビュー日: 2003/07/23
投稿数: 63
投稿日時: 2004-04-14 11:00
皆さん、ありがとうございます。
いろいろあるのですね。
とりあえずEnvironment.TickCountを使用してみます。
ありがとうございました。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-04-14 11:20
引用:

おひろさんの書き込み (2004-04-14 11:00) より:
いろいろあるのですね。
とりあえずEnvironment.TickCountを使用してみます。


あ、いや、ACさんが以下のように書かれてますから
------------------------------------------------------------
TickCount プロパティの解像度は、500 ミリ秒
DateTime.Now ----- Windows NT 3.5 以降  10ミリ秒
                Windows 98       55 ミリ秒
------------------------------------------------------------
Environment.TickCountではまずいんではないですか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-14 12:20
 1/100秒ということは、10ミリ秒です・・・よね?

dim before as long = datetime.ticks
functioncall()
dim span as new timespan(datetime.ticks - before)
debug.write(span.tostring("mm分ss秒ff"))

かな?
1

スキルアップ/キャリアアップ(JOB@IT)