えええ、先月あったMozilla Japan - The Future of JavaScript -presented by Mozilla & Shibuya.JS-にかなり遅刻して行って、まんまとじゃんけんで勝ち残ってJohn Resigと握手してもらってサイン入りFirefoxマウスパッドを持って帰った熊谷です。
そのJohn ResigがFirefox3でタイマの性能がどうなったか、FirefoxのほかにSafariとOperaとあわせて
この記事ではOSXでFirefox2, Firefox3, Opera9, Safari3について、タイマを同時に1~128個設定したときに、タイマが設定した時間通りに安定してイベントを伝達するか、タイマのタイムアウトを0ms, 10ms, 20msに変えて調査されています。タイマとして使われているものはsetTimeout, setInterval, nsITimerのみっつです。nsITimerというのはFirefoxの内部で
setTimeoutやsetIntervalが内部的に呼び出しているもので、FirefoxをOSにたとえたらOSのタイマAPIみたいなものだと思えばいいでしょう。
グラフの横軸は記事でrecursion depth of the timer call
と書かれていてtest case)を見ると、タイマの繰り返し回数です。縦軸は実際にタイマのタイムアウトイベントが来た時間になっています。
nsITimerはなんか根本的におかしいとりあえずSafariがすごいっていうのと、同時に使うタイマは10くらいにしておくのが無難、インターバルは10ms~20msくらいが最小、くらいがフロントエンドを書くときに関係してくる事柄でしょうか。
どうでもいいけど個人的にはどう見てもOperaよりもFirefoxのほうがmessyに思えます...
コメント欄にLinuxとWindowsでおなじテストを走らせた結果が寄せられていて、タイママニアならこちらも必見です。Linux上のOperaはOSXのSafariなみにいい結果を出しています。
どちらもどういう設定でとられた評価なのかが書かれていないのですが、グラフからするとLinuxは10msのタイムアウトでとられたもの、Windowsは0msのタイムアウトでとられたものでしょう。
トラックバック元エントリにこのエントリへのリンクがない場合はトラックバックを受け付けません。
http://labs.gmo.jp/mt/mt-tb.cgi/187
comments