JavaのSystem.nanoTime()メソッドは、高分解能のタイマーからその現在値をナノ秒単位の時間で取得するネイティブメソッドです。 高分解能タイマーにはいくつか種類がありますが(後述)、その仕組みは、ハードウェア的にはある周波数で動作するクロックの回数を数えるカウンターとなっています。 ソフトウェアとしては、まずカウンタ値を取得し、次にそのタイマーの周波数を用いてカウンタ値から時刻に変換します。例えば1MHzのクロックのタイマーでカウンタ値が100であれば、 100 / (1 * 1000000) = 0.0001 [sec] となります。 JavaのSystem.nanoTime()がどのような処理を行っているのか、Oracle JDK(OpenJDK)7のソースコードを調べると、Windows OSの場合はWindows APIのQueryPerformanceCounter
[ C++で開発 ] CPUクロックに基づく相対時刻の計測 CPUのクロックに基づき電源ONからの相対時刻を取得する方法を調査し記述します。最近のCPUは、クロックに従ってカウントアップするレジスタを保持しているので、このレジスタの値を読み出すことでCPUが起動してからのクロック数を取得することができます。例えば1GHzの動作周波数のCPUであれば、分解能は1ns(ナノ秒)となります。非常に高精度な分解能です。 2012-09-22 TSCの種類について追記 RDTSCP命令について追記 VisualC++のコンパイラ組み込み関数__rdtsc/__rdtscpについて追記 Intel x86系CPU RDTSC CPU命令を直接利用 Intel x86系のCPU(AMDのAthlon等も含む)では、CPUクロックごとに加算される64bitのタイムスタンプカウンタ(IA32_TIME_ST
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く