- PR -

100分の1秒の計測

投稿者投稿内容
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2007-09-12 15:58
引用:

べるさんの書き込み (2007-09-12 13:36) より:
Millisecond プロパティでミリ秒は普通にとれますし、
ToString()で書式を指定しても表示できます。(1/100秒ならfffかな。)


そいつあ1/1000秒ですぜだんな

閑話休題
時間の計測ならStopwatchを使うほうがおすすめです(1.1にも対応する必要があるなら別ですが)。
大抵は十分な精度で使えますし、元々こういった計測用のクラスですから、使い方も機能も非常に便利です。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-12 16:44
引用:

なちゃさんの書き込み (2007-09-12 15:58) より:
引用:

べるさんの書き込み (2007-09-12 13:36) より:
Millisecond プロパティでミリ秒は普通にとれますし、
ToString()で書式を指定しても表示できます。(1/100秒ならfffかな。)


そいつあ1/1000秒ですぜだんな


ん、、、あ、、、ほんとですね、、、ffで1/100か、、お恥ずかしい。。
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2007-09-12 17:26
今日は

ご参考に
DateTimeではスレッドの周期に影響されて10ms以下の精度は出ません。
Stopwatchは1ms以下も可能です。
TAD
ベテラン
会議室デビュー日: 2007/03/20
投稿数: 52
お住まい・勤務地: 海のそば
投稿日時: 2007-09-12 18:13
処理時間を測定するというそもそもの目的を果たそうとした際に、
他のタスク(スレッドorプロセス)の影響を排除できないといくら時間(タイム
スタンプ)を高精度に計れたところで意味がないような気もします。
(CE以外のWindowsで他のタスクの影響を排除する=一つのタスクがCPUを任意の
希望する期間占有するってできるんでしょうか?)

通常の使用状態で考えると100mSより細かいデータをとってもあまり意味が
ないなんてことになりそうですね。
れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2007-09-12 18:32
引用:

TADさんの書き込み (2007-09-12 18:13) より:
処理時間を測定するというそもそもの目的を果たそうとした際に、
他のタスク(スレッドorプロセス)の影響を排除できないといくら時間(タイム
スタンプ)を高精度に計れたところで意味がないような気もします。



そんなことはありませんよ。
目的によりけりです。

CPUに先読みがなかったり、
メモリの使用量が固定だったりするなら
スレッド切替を抑制すればステップ数が測れますが、
それはそもそも事前に計算可能ですから、測定の意味はあまりありません。

ベンチマークはCPUのステップ数を測りたいわけではなく、
あるCPU、あるメモリ量、あるリソース量のときの速度を測るものです。

他のプロセスの影響を完全に排除して処理時間を測ったら、
メモリの使用量によるコスト、プロセス切り替えのコスト、
他のリソースの使用によるコストを計測できません。

引用:

通常の使用状態で考えると100mSより細かいデータをとってもあまり意味が
ないなんてことになりそうですね。



大数の法則というのがありますからね。
100msより細かいデータを何回もとればそれなりの意味があります。

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