本稿では、前回に続き実際にいくつかのFirefoxのチューニングを行ってみます。

注意:本稿ではFirefoxのチューニングを行っておりますが、チューニングは使用者の責任において行ってください。

半透明効果を無効にする

Mozilla Firefox 3(以下、Firefox)では、画像や文字列はもちろん、URLやタブをドラッグした際に、そのオブジェクトが半透明になる機能が加わりました。もちろん、この半透明効果はオブジェクトによって異なりますが、一定のパフォーマンスを必要とし、数世代前のコンピュータでFirefoxを使っているユーザーには、パフォーマンスダウンにつながります(図1、2)。

図1 画像をFirefoxのウィンドウ内やデスクトップにドラッグしますと、その画像が半透明になります

図2 ドラッグによる半透明効果は、画像のほかにもリンクやfavicon、タブ、文字列などが対応しています

半透明効果は「nglayout.enable_drag_images」で制御されており、同設定値を初期値の「true」から「false」に変更することで、半透明効果が無効にできます(図3)。この際、Firefoxの再起動などは必要なく、既存のタブにも反映されますので、マシンパワーの乏しい環境でFirefoxをお使いの方は是非お試しください。about:configに「設定名」が無い場合は、about:configの画面で右クリック → [新規作成] で作成できます(about:configについては前回参照)。

図3 設定を終えるとすぐに半透明効果が無効になり、マウスカーソルのみ表示されます

描画待ち時間を制御にする

Firefoxでは、ダウンロードしたHTMLやCSSなどをレンダリングし、描画するまでの待ち時間を設けているのをご存じでしょうか。同設定は「nglayout.initialpaint.delay」で制御されており、初期状態では250ミリ秒に設定されています。一見すると待ち時間を減らせば減らすほど、素早く描画できるように思われがちですが、Firefoxがダウンロードし、メモリ上に展開する前に描画がはじまると、レイアウトが崩れてしまうことがあります。

少々わかりにくいので、一例を挙げてみましょう。HTMLのファイルサイズが大きく、その中でCSSファイルを呼び出しているとします。先の待ち時間が「0」の場合、HTMLファイルなどをダウンロードし、メモリ上に展開を行なったと同時に描画を行なうため、一瞬、素のHTMLによるテキストなどが表示されました。しかし後から読み込まれるCSSファイルによるデザイン描画は若干の遅延が発生するため、未完全なレイアウトが表示されることになります。

つまり、HTMLなどを読み終えたところで一度描画、レイアウトに影響を与えるCSSファイルなど他の読み込みファイルを終えたところで再描画と、二度手間になっているのです。では、どの程度の待ち時間にすれば良いかと言えば、こちらもマシンパワーや、お使いのネットワーク環境、接続するサーバーのパフォーマンスによって異なり、一概にベストな設定があると言い切れません。そこで、筆者が個人的に使用する環境を紹介しますので、それを元にご自分の最適値を割り出してください。

筆者は現在、Bフレッツハイパーファミリー(100Mbps)+ISPで、インターネット環境を構築していますが、有線LANケーブルを用いたデスクトップ環境では「100(ミリ秒)」、IEEE 802.11g無線LANでは「110(ミリ秒)」と設定しています。これらの数値は最適値とは言い切れず、もっと待ち時間を短くすることも可能でしょうが、前述のような弊害があるため、10から1000程度の間でお試しください。

再レンダリング間隔を制御する

ただし、「nglayout.initialpaint.delay」を最大限に活かすには、「content.notify.interval」の設定も行ないましょう。そもそもFirefoxでは、HTML全体をダウンロードしてから表示するのではなく、一定時間毎にダウンロードしたものレンダリングして描画しています。もちろん、この処理をリアルタイムに行なうと、著しいパフォーマンスダウンにつながるため、同設定で間隔の制御が必要となるのです。

「content.notify.interval」の初期設定値は、「120000」と120000マイクロ秒(100万分の1秒)になっており、秒に変換すると0.12秒となります。同値を大きくすれば、必然的に再レンダリングの間隔は広がり、パフォーマンスの向上となりますが、あまり大きくすると、レンダリングからこぼれるデータが出てしまう可能性があるため、お勧めできません。

同値の推奨値ですが、「nglayout.initialpaint.delay」との兼ね合いを考えますと、同等程度がいいでしょう。ただし、単位がミリ秒ではなくマイクロ秒のため、数値を1000倍にする必要があります。つまり、先の設定で「100」とした場合は「100000」、「110」なら「110000」と設定してください。

Firefoxのカスタマイズ方法に関しては、過去に掲載した「Firefoxチューニング - Firefoxのカスタマイズ方法」をご参照ください。

阿久津良和(Cactus)