2009-09-04 9 views
1

RDTSC(読み取りタイムスタンプ・カウンター)を使用できますが、動的クロック調整を行う新しいプロセッサーでは、戻されるクロック・サイクルの数は時間。ダイナミッククロックの調整は無効にすることができますが、Nehalemのような新しいプロセッサではスピードアップのメリットが失われます。サブマイクロ秒の時間測定に使用できる高精度固定周波数カウンタはありますか?インテル・プロセッサーで正確な高精度タイム・スタンプを取得する方法

答えて

2

いつか、誰かが原子時計を使用して、マスターコードのベンチマーキングをマスターすることをやってきました。彼は時計が拾ったラインをストロークすることができ、時計は時間を記録する。このアプローチの明らかな欠点は、追加の(かなり高価な)ハードウェアを必要とすることですが、これは問題である場合とそうでない場合があります。

1

良い質問です。それはよく認識されている問題です。

"解決策"はおそらくシステムのプロセッサ/チップセットに含まれるHPET(高精度イベントタイマー)です。それは10MHzと500MHzの間で動作します。

Windowsでは、QueryPerformanceCounter()は、のソースを使用しています。ソースがあります。これはHPETが利用可能な場合はそれを意味し、そうでない場合はRDTSCまたは別のソースを意味します。私が気づいていることを伝える唯一の方法は、その周波数を計算して音源を推測することです。

More info here...これは簡単です。

情報の他の有用なビットはGetSystemTimeAsFileTime()(および他のWin32の方法は)あなたに解像度を与えるだろうが、あなたは(<〜15ミリ秒)連続して、あまりにも早くそれを呼び出す場合、それが原因と同じ結果を返すということですカーネルがそれを更新する方法に...

関連する問題