ツールを使った設定 編集

Windows向けのFireTuneというソフトがあります。最適化する内容は5つのタイプから選択できるとのこと。

設定方法 編集

Mozilla Firefox をより高速にする設定 編集

about:configで設定 またはuser.js(ない場合は作る)にコピペする

Firefox Tuning @ MZ forum より

※注: user_pref("network.http.pipelining", true);はpipeliningに対応していないサイトによっては表示が遅くなったり、出来なくなったりします。

例:

user_pref("browser.cache.memory.capacity", 65536);
user_pref("browser.cache.disk_cache_ssl", true);
user_pref("browser.xul.error_pages.enabled", true);
user_pref("content.interrupt.parsing", true);
user_pref("content.max.tokenizing.time", 3000000);
user_pref("content.maxtextrun", 8191);
user_pref("content.notify.backoffcount", 5);
user_pref("content.notify.interval", 750000);
user_pref("content.notify.ontimer", true);
user_pref("content.switch.threshold", 750000);
user_pref("network.http.pipelining", false);
user_pref("network.http.pipelining.maxrequests", 4);
user_pref("network.http.proxy.pipelining", false);
user_pref("nglayout.initialpaint.delay", 750);
user_pref("plugin.expose_full_path", true);
user_pref("signed.applets.codebase_principal_support", true);

他にも

user_pref("ui.submenuDelay", 0);

など。

内容 編集

以下、元スレッドでの詳しい内容を引用・翻訳

このスレッドはGeckoベースのブラウザの様々な最適化設定について、web上に知れ渡っている明らかなミスをただし、議論し答えを出すのが目的です。

ただし、私はGecko開発者ではありませんから、塩粒ほどの情報しか投稿できないことを知っておいてください。

情報の穴を埋めたり、間違いを正して頂ける人は役立つ設定を教えてくれ人と同様、大歓迎です、良いチューニングをしましょう。

解析・レンダリングの設定 編集

注意:これらの設定は実際に使える内部設定として存在し、問題の手直しに役立ちますが、エンドユーザーが変更するべき点ではありません。

実際のソースで説明できない点では、オマジナイの一種ですし、またGeckoと密接に結びついているわけではありません。

デフォルトの設定では幅広い種類の接続タイプ(訳注:ISDN,ADSLナド)やシステムスペックに対応できるよう出来る限り最適化されています。

下記を設定すればGeckoでレンダリングが早くなり、結果、コンテンツの表示速度は速くなることもあるでしょうが、トータルの読み込み時間で見れば逆効果ともなり得ます。

出来る限り、テストは徹底的にしてください。

nglayout.initialpaint.delay
説明ページをレンダリングする前の待ち時間
種類整数値
単位ミリ秒
初期値250
推奨値content.notify.interval (?)と同期させる
訳注content.notify.intervalの訳注をご覧ください。
content.notify.ontimer
説明ページのレンダリング中の基準時間の有効化(?)
種類真偽値
初期値true(有効)
推奨値デフォルトのまま
content.notify.interval
説明content.notify.backoffcountで決めた初期量の時間の間隔(?)
種類整数値
単位1000ミリ秒(?)
初期値120000
追加情報nsHTMLContentSink.cpp 及び Bug 72138に注意
100000以下に設定しないでください。
nglayout.initialpaint.delay (?) と同期させてください。
他にもいえることですが100とかの常識外れな値にしないでください。
訳注高速回線(40M ADSLやFTTHなど)・高速なCPU(大体1.5Ghz以上)の方は、値を減らせば再描画の回数が減る可能性があります。
アメリカでは低速回線が多いため、このような記述がされていると思われますが、ある程度回線やCPUに余裕のある方は100程度にしてもいいでしょう。
content.notify.backoffcount
説明ページの大まかなレイアウトの計算がすんだ時に、基準時間でのレンダリングが始まるまでのページの再処理時間(?)
種類整数値
単位1000ミリ秒(?)
初期値-1(しない)
追加情報nsHTMLContentSink.cpp
この値はお使いの回線の接続速度やPCスペックに左右されます

あまり効果が無いチューニング 編集

content.switch.threshold
説明ここで指定した時間、マウス又はキー操作をしないと high frequency mode から low frequency mode に切り替わる
種類整数値
単位1000ミリ秒(?)
初期値750000
追加情報nsHTMLContentSink.cpp
nglayout.initialpaint.delay と content.notify.interval と同じ値にしておいてください(?)
content.maxtextrun
説明不明
種類整数値
単位KB(キロバイト)
初期値8191
推奨値デフォルトのまま
追加情報nsHTMLContentSink.cpp 及び Bug 77540に注意
content.interrupt.parsing
説明(時折)ソフト側でイベントがループしてしまったときに解析を中断させるか?
種類真偽値
初期値true(有効)
推奨値デフォルトのまま
content.max.tokenizing.time
説明ソフト側でイベントがループして、解析を中断させたとき、その処理までの時間
種類整数値
単位1000ミリ秒
初期値content.notify.intervalの3倍
推奨値デフォルトのまま
一例2250000
追加情報nsHTMLContentSink.cpp 及び Bug 76722に注意
この値を減少させると大きなページの読み込みが早くなるかもしれませんが、全体での読み込み時間は増えてしまうかもしれません。
この値を変えるならcontent.notify.intervalをここの2倍にしておいてください。
browser.display.show_image_placeholders
説明画像がまだ読み込まれていないとき、壊れているときに出る画像を出さないようにする
種類真偽値
初期値true(有効)(1.0.6)
推奨値true(画像が壊れているときも画像が出ないのは問題ない場合)
追加情報有効にすると画像が壊れているとき、混乱してしまうかもしれません

HTTP接続設定 編集

これらを変えるとHTTP接続数をいじることができます。 Fx3.0以降の初期値は他のブラウザと同程度まで増えていますが、問題がなければ変更する必要はありません。

以下の推奨値は、Fx3.0以降の初期値はRFC 2616 に定められた範囲外の過剰な接続数で、HTTPレスポンスタイムの悪化・ネットワークの混雑などを引き起こし、ネットワーク全体への迷惑となる危険性があると考える場合の値です。

network.http.max-connections
説明接続数の上限
種類整数値
初期値30
推奨値24
network.http.max-connections-per-server
説明1サーバ毎の接続数の上限
種類整数値
初期値15
推奨値8
network.http.max-persistent-connections-per-proxy
説明1プロキシ毎の持続的接続数の上限
種類整数値
初期値8
推奨値4
network.http.max-persistent-connections-per-server
説明1サーバ毎の持続的接続数の上限
種類整数値
初期値6
推奨値2

HTTPパイプライン処理設定 編集

留意事項 編集

WEBサイトのサーバーが対応していないと, "読み込み完了に時間が掛かる","応答なし","画像が表示されない","間違った画像が表示される"および"レイアウトが崩れる"等不具合が生じる。

よく理解していないばあいは, パイプラインの設定は変更しない事。

パイプライン処理とは 編集

パイプライン処理は最初の反応を見ずに、一度に数回の要求を出すことで転送速度を上げるHTTP1.1の特徴です(詳細)

network.http.pipelining
説明非プロキシ接続の時、パイプライン処理をさせる
種類真偽値
初期値false(無効)
推奨値false
追加情報パイプライン通信を正常にサポートしていなくて、それでもインターネット上の(鯖の)ブラックリストに入っていない鯖では問題が起きる可能性があります
network.http.pipelining.firstrequest
説明通信のうちの最初の要求でパイプライン処理を使うか
種類真偽値
初期値false(無効)
推奨値設定しないでください、百害あって一利なしですから。
追加情報これはソースのどっかから拾ってきたモノでもないようですし、使われている感じもなさげです。
だって、初めの通信に明らかにパイプライン処理なんか使えないんですもの(訳注:じゃあ、何のためにあるんだ(´・ω・`)ショボーン)
network.http.pipelining.maxrequests
説明一度のパイプライン処理で送信する最大要求数
種類整数値
初期値4
推奨値4
network.http.pipelining.ssl
説明SSL接続の時、パイプライン処理をさせる
種類真偽値
初期値false(無効)
推奨値false
network.http.proxy.pipelining
説明プロキシ接続の時、パイプライン処理をさせる
種類真偽値
初期値false(無効)
推奨値false
追加情報network.http.pipeliningと同じ

お役立ちキャッシュ設定 編集

●RAM Diskソフトウェアを使用せずに、ブラウザキャッシュをメモリ上(OS管理内)に設定する方法。
 1.browser.cache.disk.enable を false に設定。
 2.browser.cache.memory.enable を true に設定。
 3.browser.cache.memory.capacity を KB単位 で設定。 ※KiB(1024)ではなくKB(1000)で設定。

browser.cache.memory.capacity
説明メモリにキャッシュする割り当て量
種類整数値
単位KB(キロバイト)
初期値なし(搭載メモリ量に応じて自動的に割り当てられます)
推奨値もしブラウザの戻る/進むの処理を何回もして問題なく、さらに(戻る/進むの)パフォーマンスをあげたいときは高い値をとってください
browser.cache.disk.capacity
説明ハードディスクにキャッシュする割り当て量
種類整数値
単位KB(キロバイト)
初期値50000
推奨値0(キャッシュしない)
browser.cache.disk_cache_ssl
説明SSL通信で受け取ったデータをキャッシュするか否か
種類真偽値
初期値false(無効)
推奨値false
browser.cache.disk.parent_directory
説明「Firefox」がキャッシュデータを置く場所
種類文字列
初期値プロファイルフォルダ
推奨値プロファイルフォルダ
追加情報OSがWindowsならフォルダの区切りには\\を用いてください
フォルダが存在しなかったら勝手に作ります
一例E:\\Folder1\\Folder2

その他いろいろ役立つ設定 編集

network.dns.disableIPv6
説明IPv6用のDNSリクエストを無効化します。
種類真偽値
初期値false
推奨値true
browser.xul.error_pages.enabled
説明接続がエラーの時、うるさいダイアログでなくエラーページを表示させる
種類真偽値
初期値true(有効)
推奨値true(Show Failed URL(拡張)と組み合わせるとなお(・∀・)イイ!)
追加情報Bug 28586 に注意、ちょっとユーザビリティ的に問題がある。
plugin.expose_full_path
説明about:pluginsでプラグインの完全な位置を示します
種類真偽値
初期値false(無効)
推奨値true(有効)
signed.applets.codebase_principal_support
説明不明
種類真偽値
初期値false(無効)
推奨値true(ページごとコピーしてクリップボードに入れたいとき)

結果 編集

この設定の変更はuser.jsとabout:configのどちらからでも可能です。
ほとんどの設定方法はこちら(Preferential)に説明されています。


この設定を変更しても普通にブラウジングする程度なら、レンダリングスピードやトータルの読み込み時間はそう変わらないでしょう。

実感したいのなら、ローカルでとても大きなページを保存しディスクから読み込んだり、JavascriptのOnloadハンドラーやストップウォッチで時間を計ればいいでしょうね。

http://www.numion.com/stopwatch/のような回線速度の測定をしてみてもいいかもしれません。

どちらも違う接続環境や違うPC構成でも同じように変化するでしょう。また、提案や例を示したページを出してくだされば歓迎します。


最後に私がダイヤルアップ*1回線を使い高速なPC上で、以下のように設定した結果を示しておきます。

browser.cache.memory.capacity : 65536
browser.cache.disk_cache_ssl : true
browser.xul.error_pages.enabled : true
content.interrupt.parsing : true
content.max.tokenizing.time : 3000000
content.maxtextrun : 8191
content.notify.backoffcount : 5
content.notify.interval : 750000
content.notify.ontimer : true
content.switch.threshold : 750000
network.http.max-connections : 24
network.http.max-connections-per-server : 8
network.http.max-persistent-connections-per-proxy : 4
network.http.max-persistent-connections-per-server : 2
network.http.pipelining : false
network.http.pipelining.maxrequests : 8
network.http.proxy.pipelining : false
nglayout.initialpaint.delay : 750
plugin.expose_full_path : true
signed.applets.codebase_principal_support : true

一例として、これらの設定でscragzさんのtableのレンダリングでテストをした結果、平均してデフォルトで約3.4秒だったのが約2.4秒になりました*2

この具体的なテストでは30%の高速化といった結果となったことになります。

もしもっと情報が知りたければscragzさんの投稿(Mozillazine)をご覧ください。

もちろん、これらは自己責任でやってください。よいチューニングを ;)

その他チューニング情報 編集


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White
  • browser.cache.disk.parent_directoryに対してWindowsでのフォルダの区切りは「⁄⁄」ではなく「\\」のようです。http://www.mozilla-japan.org/support/firefox/tips#oth-cache -- by MTM at 2005-06-07 13:45:30 (火)
  • いちおう、高速化設定が負荷増加になる云々の議論があるので、user_pref("network.http.max-persistent-connections-per-server", 2);にしますた。 - at 2005/01/29 (土) 20:45:29
  • 凄い情報量なので、まだちゃんと読んでませんがまずはリンクということで書いてみました。(content.* なんてはじめて見た) -- pink 03月01日 (月) 01:11:24
  • wiki は久しぶりなので見た目/内容に関してどなたか修正をお願いします。 -- pink 03月01日 (月) 01:12:50
  • ほんとすごい量・・3日には暇が出来るのでそんときまた訳(要約)してみますです、どもー -- 525 03月01日 (月) 03:13:20
  • 翻訳中.. -- 525 03月03日 (水) 16:51:28
  • 翻訳終わり -- 525 03月04日 (木) 04:39:27

注釈(R)

  1. *1 アメリカでは主流ですから
  2. *2 比較的低速環境で効果がある模様、24→9秒という方も