7/4/2012
ツイート

JavaScript上でナノ秒を計測する
JavaScript上でナノ秒(nanoseconds)を計測する方法のメモ。
JavaScriptのパフォーマンスを測りたいときなど、普通はDateオブジェクトを使います。
現在時刻のミリ秒は、
var now = new Date();
console.log(now.getTime());
とすれば出力できます。
しかし、これで得られる値はミリ秒(milliseconds)です。
JavaScript単体では、もっと細かい値(マイクロ秒やナノ秒)を計測できないですが、Java appletを併用すればナノ秒を得ることができます。
次のような簡単なJavaのコードを書いてコンパイルし、Nano.jarとまとめておきます。
public class Nano extends java.applet.Applet {
public long nanoTime() {
return System.nanoTime();
}
}
そして、使いたいページのHTMLファイルに、
...
<applet code="Nano" archive="Nano.jar" name="nano" mayscript="true"></applet>;
...
のように貼り付けます。
JavaScriptからJava appletを呼び出すのにname属性を指定しておく必要があります。
後は、JavaScript上でNano.nanoTime()
という関数を呼び出せばナノ秒を取得できます。
var now = document.nano.nanoTime();
console.log(now);
これでおーけー。
なお、GitHubにサンプルが置いてあります。