Mozilla Flux

Mozilla関係の情報に特化したブログです。

落ち穂拾い #10

一本の記事にならないような小さなネタを雑多に集めたもの。不定期に連載予定。

Thunderbird 3のJavaScriptパフォーマンス
mozilla.dev.apps.thunderbirdに、ThunderbirdのJavaScriptパフォーマンスをSunSpiderでテストした結果が掲載された。実行環境などは不明だが(追記:XP, Pentium III-S 1.4 GHzと判明)、いちおうの目安にはなる。Thunderbirdの主要開発者らも、参考になると評価している
ベンチマーク上はTraceMonkeyの効果が大きいけれども、実際にThunderbirdのパフォーマンスに影響を与えるのは、JavaScriptエンジン本体(SpiderMonkey)の改良だろう。XULなどの処理が高速化されるからだ。その意味で、Shredder/3.0b1preの数値は、Thunderbird 2と比べて二世代進んだエンジンの力を示すものとして重要だ。もちろん、現在のエンジンではさらに改善されているだろう。

--------------------------------------------
Total: 2.0.0.20pre (20081217)                  47212.0ms +/- 1.1%
--------------------------------------------

--------------------------------------------
Total: Shredder/3.0b1pre ID:20080920           14423.8ms +/- 12.0%
--------------------------------------------

--------------------------------------------
Total: Shredder/3.0b2pre ID:20090218            4758.6ms +/- 3.6%
--------------------------------------------

Firefoxにまつわる数字
FOSDEM 2009で発表されたところによると、Firefoxは、一日に120万のダウンロードがあり、2億3千万人のユーザーがいて、10億以上のアドオンが使われているという。ちなみに、このユーザー数は、日常的に使用しているユーザーが約8500万人いるとのカウントを基に、全ユーザー数はその約3倍という推計を用いているらしい。なお、ユーザーの地域分布は、ヨーロッパが44%、北米が33%、アジアは12%となっている。
Firefox 3.1でファイルのアップロード速度が向上
Windows版Firefox 3は、ファイルのアップロード速度が他のWebブラウザより遅いという問題を抱えていた。原因を調査したところ、TCP(伝送制御プロトコル)の設定に問題があり、8KB単位でしかデータを送っていなかったことが判明した。小さな塊に分けて送信するため、非常に効率が悪かったわけだ。ウィンドウサイズが8KBしかなく、相手のサーバーから頻繁に確認応答を受け取ることになって、通信効率が悪くなっていたことが判明した。そこで、ウィンドウサイズを128KBとする単位で送信するように設定が変更され、他と互角のスピードになった。とくにブロードバンド環境でメリットがありそうだ。
(同日追記)
「あ」さんのコメントでのご指摘を受けて誤りを訂正する。理解が根本的に間違っていたようだ。通信の塊であるセグメントサイズは変更されていない。確認応答(ACKパケット)を待たずに送信できるデータサイズが拡張されたにすぎない。なお、一連の概念については、『ウィンドウとは -- Ray:雑学事典』がわかりやすかった。
Firefox 3.1のイメージライブラリは独自のメモリキャッシュを使用
これまで、Firefoxのイメージライブラリは、ネットワークライブラリ(Necko)のメモリキャッシュを使って、デコードした画像を保持してきた。3.1からは、イメージライブラリが独自のハッシュテーブル、破棄基準と復元方法をもつようになる(Bug 466586)。ただし、今のところパッチは不完全だ。
(同日追記)
「あ」さんのコメントでのご指摘を受けて誤りを訂正する。Bug 466586は、データの復元方法を定めた追加の修正で、独自のキャッシュと破棄基準を採用したのは、Bug 430061である。
Firebug 1.4の情報が少しずつ明らかに
Firefox 3.1をサポートする予定の有力な開発ツール、Firebug 1.4。その情報が少しずつ明らかになってきた。まず、UIの一部に変更が加えられる。タブの位置が変わるという。
また、1.3で導入された"viewport"機能がスムーズに動作するようになる。これは、スクリプトパネルにおいて、見えている行だけをレンダリングするもので、巨大なJavaScriptファイルを編集する場合にリソースの消費を劇的に抑えることができる。スクロール時に再レンダリングが必要になるが、1.4では多数の改良を加えて、その処理を改善したそうだ。
ICC color correction in Firefox
Mozilla Developer CenterにFirefoxのカラーマネジメント機能を解説した記事が投稿された。短いものだが、gfx.color_management.rendering_intentの解説もあって参考になる。