- PR -

100分の1秒の計測

投稿者投稿内容
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2007-09-12 11:44
 おはようございます。

VB2005にて、処理時間を計測するのに

Debug.WriteLine("START-" & System.DateTime.Now)

としましたが、100分の1秒の計測を行いたいのです。

何か良い方法ありませんか?
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2007-09-12 11:55
DateTime 構造体は、タイマ刻み単位で値を保持しています。で、1 タイマ刻みは 100 ナノ秒です。
ですから DateTime 自体は要求を十分に満たすだけのデータを持っています。
あとはそれをどう表現するかだけ。
ということで、MSDN やヘルプで「日付と時刻の書式指定文字列」を調べてみてください。

// でも、システムタイマ自体は結構大雑把なので注意してください。
// 詳しくは DateTime.Now の解説を。
// もっと高い精度が必要なら Stopwatch クラスの使用を検討してください。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-09-12 12:38
どれくらいの精度が必要なんですか?
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2007-09-12 13:13
渋木宏明(ひどり)さんへ

そんなに高い精度は必要ありません。

処理時間の計測ですので。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-12 13:36
Millisecond プロパティでミリ秒は普通にとれますし、
ToString()で書式を指定しても表示できます。(1/100秒ならfffかな。)
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-09-12 13:42
引用:

そんなに高い精度は必要ありません。



じゃあ「計測」に関しては、「開始 ~ 終了時の DateTime.Now の値を比較」でよさそうですね。

引用:

Debug.WriteLine("START-" & System.DateTime.Now)



で、大した精度が必要でなく「1/100 秒単位の時間が表示されない」ってだけなら、それはもう「計測(の操作)」そのものとはあまり関係がない話になります。

DateTime.Now.ToString(書式文字列) として 1/100 秒単位までの時刻を表示するか、既にコメントがついているように、DateTime.Now.Millisecond プロパティの値を参照してください。



[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2007-09-12 13:44 ]
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2007-09-12 14:16
解りました。

ありがとうございます。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-09-12 14:47
引用:

じゃあ「計測」に関しては、「開始 ~ 終了時の DateTime.Now の値を比較」でよさそうですね。



.NET 2.0 以降なら、Stopwatch クラスってのもありますね>計測

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