Firefox 3の開発者のひとりであるVladimir Vukicevic氏は2月28日(カナダ時間)、自身のブログにおいてFinding the OS X Turbo Buttonのタイトルのもときわめて興味深い技術調査結果を報告している。場合によってはMac OS X向けに公開されるFirefox 3の実行速度、とくに描画処理がすばらしく向上するかもしれない。

これまでMac OS X向けにビルドされたFirefox 3はスクロール処理が遅いという問題が指摘されていた。Firefox 2と比較した場合、スクロール関連の計測でだいたい50%から500%も遅く動作することが確認されていたという。しかしながらグラフィックレイヤの定石に従うならばFirefox 3はより高速に動作しても遅くなる道理はないという。

同氏は調査を続け、最終的にADC - Technical Note TN2133に記載されているCoalesced Updatesが問題の原因であることを発見。Firefox 2がこの影響を受けなかったのはFirefox 2がCarbonアプリケーションであったためで、Cocoaで開発されたFirefox 3のみが影響を受けていたことがわかったという。Coalesced Updatesを無効にすれば同問題を回避できることも明らかになった(ただし問題対応された10.4.4以降のみで対処可能)。

興味深いのはここからだ。同氏はCoalesced Updates問題を発見し、個々のアプリケーションで同機能を無効にする方法を調査している間に、Safari/WebKitが同問題の影響を受けていないことに気がついたという。同アプリケーションのソースコードを調べていったところCoalesced Updatesを無効化している気配がなく、かわりにWKDisableCGDeferredUpdates();といったWK*()の関数を使っていることがわかったとされている。

WK*()系の関数はドキュメント化されていない。どうやらWebKitからのみ使われるOSに隠蔽された機能がいくつかあるようで、WK*()系の関数はそうした機能のひとつのようだ。Appleのアプリケーションに利益をもたらすために隠蔽されているわけではなく、ライセンスの関係上ドキュメントやソースコードを公開できない部分ではないかとみられる。またWK*()系を使っているからSafariが高速に動作するというわけでもないようだ。同機能をリンクした場合のライセンス上の問題が明らかではないためFirefox 3においてデフォルトで同機能が使われることはないとみられるが、研究対象としてはおもしろいところだ。