(最終更新: 2011/03/06) # 履歴は記事の末尾にあります 先日、JDKのコードを読んで、JavaのSystem.nanoTime()を実行すると、Win32APIのQueryPerformanceCounterが使用されることを確認しました。 そこで、System.nanoTime()を使うよりも速いJava用タイマーを作ってみようと思います。 合言葉は、「そんなタイマーで大丈夫か?」「一番いいのを頼む」(※ただしインテルに限る) 何を考えたか QueryPerformanceCounterは、マシン起動時からの秒数を取得します。であるならば、Javaからネイティブコードを呼び出し、インラインアセンブラに同じ処理を書いて実行することで、JDKを経由してWin32APIを叩く分のコストを削れると考えました。 さらに、手作りタイマーの良さを生かせば、次のコストを切り分けることができ