私はいくつかの低レイテンシ技術論文を読んで、CPUを使ってタイミングを測定しました。これは正確です。CPUクロックによる測定時間は?
は通常、Javaで私が使用します。
System.nanoTime()
およびC++での私は、私はかつて私はナノ秒の精度を行うことができ、オンラインを発見したパフォーマンスカウンタの方法を使用と考えています。それはLARGE_INTEGERを使用し、測定したい精度に割り当てられてから、QueryPerformanceCounter()への参照によって渡され、応答を頻度で除算して返されました。
CPUに応じて時間を測定するJava同等のコードはありますか、PInvokeの何らかの種類を使用する必要がありますか?
EDIT:
時間と精度のこのレベルでは、CPUからのタイムスタンプ カウンタを使用する必要があります。 古いプロセッサは節電のために周波数が変更され、 とスリープ状態になるため、不変のTSCを持つCPUを選択しました。
私はWindowsとLinuxの回答に興味がありますが、その答えが特定のものかどうかを人々が説明できるかどうかは分かります。
実際にはSystem.nanoTime() – Alan
...これはネイティブメソッドなので、おそらくQueryPerformanceCounter()/ QueryPerformanceFrequency()を内部で使用していると言っています。 – Alan
@Alan、私は実際にそれを見て、私はそれを修正したと思った - 明らかにそうではありません。 – user997112