タグ

JavaScriptとTimerに関するmonjudohのブックマーク (23)

  • ブラウザ別のタイマ性能比較 - bits and bytes

    えええ、先月あったMozilla Japan - The Future of JavaScript -presented by Mozilla & Shibuya.JS-にかなり遅刻して行って、まんまとじゃんけんで勝ち残ってJohn Resigと握手してもらってサイン入りFirefoxマウスパッドを持って帰った熊谷です。 そのJohn ResigがFirefox3でタイマの性能がどうなったか、FirefoxのほかにSafariとOperaとあわせて タイマ呼び出しの遅延 タイマ呼び出し間隔の安定度 複数タイマを使用するときのスケーラビリティ 利用可能な最小呼び出し間隔 について調べたはなしを John Resig - Analyzing Timer Performance で書いていたのでご紹介。 この記事ではOSXでFirefox2, Firefox3, Opera9, Safari3に

    monjudoh
    monjudoh 2008/01/21
    『タイマを同時に64以上動かすのは厳しい』『同時に使うタイマは10くらいにしておくのが無難、インターバルは10ms~20msくらいが最小』
  • Timer系のデバック方法を考えてみた。 - 考え得る最高を常に行う

    setTimeoutやsetIntervalで関数を実行するとthrowされた値がキャッチできない。そこで下記のように関数を上書きするだけでthrowがキャッチできる。(console.errorは javascriptのデバック方法に依存するのでお好みのコードに置き換えて使えばOK) 使い方 catchした後の処理はお好みのコードに差し替え。 できるだけ早く以下のコードが実行されるようにする。 あとは、いつも通りのコーディングでOK. (function(){// debug. // setTimeout var _setTimeout=window.setTimeout; window.setTimeout=function( func, ms ){ func = ( typeof func == 'function' )?func:new Function(func); return

    Timer系のデバック方法を考えてみた。 - 考え得る最高を常に行う
    monjudoh
    monjudoh 2007/10/18
    setTimeoutやsetIntervalにAOP的にtry・catchを入れる
  • FirefoxのsetTimeoutの実装 - bits and bytes

    Firefoxのソースコードを追っているうちに、たまたま1年遅れで IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念 の裏側がどうなっているかがわかったので、その話を。 タイマーの管理方法 そもそもjavascriptからsetTimeoutを呼ぶと、どういう仕組みで指定した時間後に渡した関数が呼び出されるようになっているのでしょう。Linuxであればsleepのように一定時間後にawakeするという処理は、タイマーリストによって管理されています。カーネルの中にN jiffies(LinuxのOS内時間の単位はjiffyと呼ぶそうです)経過後に実行することリストがあって、カーネルが4msごとに毎回タイマーリストをチェックしてやることがあったときにはそれを実行しています。 FirefoxもLinuxと同じようにタイマーリストみたいな

    monjudoh
    monjudoh 2007/09/09
    最後の図がわかりやすい