JavaScript時間正確さ、XPとWindowsでは最低でも1秒はベンチ必要
2008/11/17
Mozilla Foundation, JavaScript EvangelistにしてjQueryの開発者であるJohn Resig氏は12日(米国時間)、 Accuracy of JavaScript Timeにおいて興味深い計測結果を報告している。報告によればJavaScript Webアプリケーションの性能計測をWindows XPやVistaで実行している場合、それはあまり正確な値とはいえないかもしれない。Webデベロッパは報告されている内容を一度検討しておきたい。
John Resig氏は自身が開発しているjQueryの性能を改善するためにベンチマークを実行するわけだが、Dromaeoで結果に0msが含まれていたりSlickSpeedの結果が揺れすぎることに疑問を感じていたという。正確に計測できているならこうした結果にはならず揺れはあるにしても再現性があるはずだし、0msが頻繁に出てくるというのもちょっとおかしい。
ベンチマークでは大体試験の最初と最後の段階で(new Date).getTime()のようにして現在時刻をミリ秒で取得し、その差分で実行時間を計測している。計測結果には正規分布に則った揺れが伴う。この結果を加味してベンチマークでは結果を出力している。ちなみにSunSpiderやDromaeoではより優れた結果を得るためにスチューデントのt分布を使っている(標本が十分でなかったり母分散が未知の場合にはt分布の方が優れた結果を得やすい)。
John Resig氏は揺れが発生したり0msが検出される原因を明らかにする目的で、空ループを1万回繰り返したり数千のdivを経由してループやクエリ、編集を実施するベンチマークを作成しヒストグラムにまとめた。Mac OS Xで計測したところ0msの近辺に結果が集まるという結果が得られるものの、それ以外はOpera、Safari、WebKit Nightly、Firefoxで期待通りの正規分布が観測されている。
これをWindows XPで実行するとFirefoxとChromeが辛うじて正規分布のような結果を示すものの曖昧な形になり、それ以外のブラウザは正規分布っぽさすらなく定期的に値が現れている。ネイティブに実行してもVMware Fusionで実行しても結果は同じだとされている。Vistaでもたいした違いはないようだ。getTime()の返す値の粒度が15msであるため、その値まで精度が下がるのが原因だ。結果的に実行時間が15ms以下の場合は0msとして現れることになる。この15ms制限をクリアするには少なくとも試験が750ms以上かかるようにして全体の1%未満にまでしないと効果的な結果が得られない。
John Resig氏の指摘によれば、こうした問題を加味してベンチマークが実施されているのはGoogleが公開しているV8 Benchmark Suiteになるようだ。もしこれまで自身で1秒に満たないベンチマーク試験を作成してJavaScriptのコードやJavaScriptフレームワークの評価をWindows XPやVistaで実施していたのであれば、それぞれのベンチマークが1秒はかかるようにして再度チェックした方がいいかもしれない。
関連記事
- JavaScriptベンチマーク結果発表、OperaとSafari3が高速[2007/12/21]
- 新しいJavaScriptベンチ「SunSpider」が登場[2007/12/20]
関連サイト
ヘッドライン
- 【レポート】進む薄膜Si太陽電池のタンデム化 - アルバックがタンデムターンキーを発売[21:53 7/13]エレクトロニクス
- 【レポート】太陽光発電市場の動向を読む - 国内は補助制度復活により拡大の見込み[20:25 7/13]エレクトロニクス
- Firefoxパスワード管理を簡単にする5つのエクステンション[17:41 7/13]セキュリティ
- NIMSと理研、グラフェンシートによる結合量子ドット素子の作製に成功[17:40 7/13]エレクトロニクス
- 日本HP、自動負荷テストソフト「HP LoadRunner software 9.5」を発表[16:00 7/13]ソフトウェアテスト
- FirefoxにHTML 5パーサ、Java→C++自動変換で性能改善3%[15:03 7/13]JavaScript / CSS / HTML
- HTML Purifier 4登場、XSS対策およびHTMLスタンダード[14:01 7/13]JavaScript / CSS / HTML
- エンデバー、天候不良のため4度目の打ち上げ延期が決定[11:43 7/13]サイエンス
- 【レビュー】BOOK REVIEW - ITスペシャリスト向けの言葉で説明する、論理思考テクニックの解説書[10:00 7/13]SE力
- 【インタビュー】新FlashファミリがWeb開発のワークフローを変える - Adobeエバンジェリスト[09:00 7/13]プログラミング





