投稿者 tel | 2013年2月12日

JavaScriptで高精度なタイマーを使う

HTML5にはPerformanceという高精度なタイマーを扱えるオブジェクトがある。

WHEN MILLISECONDS ARE NOT ENOUGH: PERFORMANCE.NOW()
http://updates.html5rocks.com/2012/08/When-milliseconds-are-not-enough-performance-now

 

ブラウザで実際に使う場合はperformance.now()というようにミリ秒の時間が取得できる。console.time()みたいにして処理時間を計測してみる。

var timer = {
    time: function(tag) {
        this.tags[tag] = performance.now();
    },
    timeEnd: function(tag) {
        console.log(tag, performance.now() - this.tags[tag]);
    },
    tags: {}
};

FirefoxとGoogle ChromeとIE10でなら動くと思う。
http://jsdo.it/sapphire_al2o3/u9An

Dataだと分解能がミリ秒なのでゲームとか精度が高いタイマーが欲しい場合は使えそう。

Google Chromeだとどうも分解能が悪いみたい。試した感じだと分解能が1ミリ秒っぽい。
http://code.google.com/p/chromium/issues/detail?id=158234


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。