Mozilla Flux

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

Firefox 3.6のスマートロケーションバーはとても速い

Trunkに”Bug 455555 - Use asynchronous queries for places autocomplete”の修正がチェックインされ、Nightlyビルド(Minefield/3.6a1pre ID:20090801042759)で使えるようになった。担当者のShawn Wilsher氏が昨年から構想を温め、今年2月からこつこつと開発を進めてきたもので、当ブログでも『ロケーションバーの検索速度をアップさせる試み』で採り上げている。

Firefox 3.6 Alpha 1でNightlyユーザー以外の目にも触れることになるこの機能、開発総責任者のMike Beltzner氏も絶賛だ。

is using today's Minefield (Firefox trunk) build which includes the "asynchronous awesomebar"; it is noticeably faster, great work @sdwilsh!

目立って速くなった、という。筆者がTrunk Nightlyのplaces.sqliteをShiretoko Nightly(Firefox 3.5相当)にコピーして比べてみたところ、Trunkは確かに速い。打ち込む文字数によっても違うが、Shiretokoだとリストが揃うまでに少し間が空くのに、Trunkだと一瞬で表示される。

Firefox Sprintsの『Asynchronous Location Bar』ページを見ると、スピードアップの秘密は非同期ストレージAPIを採用したことにあるようだ。既存のコードを大きく書き換え、ファイルI/Oや検索結果のフィルタリングをメインスレッドの処理から外すことで、全体としてスムーズに処理を進めることが可能となった。ちなみに、Wilsher氏の『New Asynchronous Storage API Has Landed』で技術的な側面について触れられている。

スマートロケーションバーのコードが変更されたことに伴い、Firefox 3.5に対して行われたように、クエリーのチューニング(Bug 503360)が施され、その成果がTrunkに盛り込まれた。Beltzner氏も認める速さは、このチューニングも影響しているだろう。

このように、新機能の大枠は完成したものの、まだ多少改善の余地は残っているようだ。さらにいえば、Beta版までの間にクエリーのチューニングがもう一段階進むかもしれない。Firefox 3.6のスマートロケーションバーは、サクサク動くと期待していいだろう。