- - PR -
100分の1秒の計測
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-12 15:58
そいつあ1/1000秒ですぜだんな 閑話休題 時間の計測ならStopwatchを使うほうがおすすめです(1.1にも対応する必要があるなら別ですが)。 大抵は十分な精度で使えますし、元々こういった計測用のクラスですから、使い方も機能も非常に便利です。 | ||||||||
|
投稿日時: 2007-09-12 16:44
| ||||||||
|
投稿日時: 2007-09-12 17:26
今日は
ご参考に DateTimeではスレッドの周期に影響されて10ms以下の精度は出ません。 Stopwatchは1ms以下も可能です。 | ||||||||
|
投稿日時: 2007-09-12 18:13
処理時間を測定するというそもそもの目的を果たそうとした際に、
他のタスク(スレッドorプロセス)の影響を排除できないといくら時間(タイム スタンプ)を高精度に計れたところで意味がないような気もします。 (CE以外のWindowsで他のタスクの影響を排除する=一つのタスクがCPUを任意の 希望する期間占有するってできるんでしょうか?) 通常の使用状態で考えると100mSより細かいデータをとってもあまり意味が ないなんてことになりそうですね。 | ||||||||
|
投稿日時: 2007-09-12 18:32
そんなことはありませんよ。 目的によりけりです。 CPUに先読みがなかったり、 メモリの使用量が固定だったりするなら スレッド切替を抑制すればステップ数が測れますが、 それはそもそも事前に計算可能ですから、測定の意味はあまりありません。 ベンチマークはCPUのステップ数を測りたいわけではなく、 あるCPU、あるメモリ量、あるリソース量のときの速度を測るものです。 他のプロセスの影響を完全に排除して処理時間を測ったら、 メモリの使用量によるコスト、プロセス切り替えのコスト、 他のリソースの使用によるコストを計測できません。
大数の法則というのがありますからね。 100msより細かいデータを何回もとればそれなりの意味があります。 |