Android版Firefoxでマルチプロセス(e10s)を有効にする設定をしてみた。しかし・・・
PC版のFirefoxではElectolysis(e10s)というマルチプロセス機能が有効になっていると思います。
1つのタブがクラッシュしてもブラウザ全体がクラッシュすることが少なくなって安定性が向上し、マルチコアのCPUの恩恵を受けて動作が高速になる利点もあります。
Android版のFirefoxでも有効になるのか、設定をいじってみました。
アドレスバーに「about:config」と入れてエンターを押し、細かく高度な設定ができる画面を開きます。
extensions.e10sBlocksEnabling
extensions.e10sBlockedByAddons
をどちらも「false」にします。
dom.ipc.processCount
の値を設定します。
起動できるプロセスの数です。
ChromeやChromiumではタブ1つにつき、プロセスが1つ割り当てられます。
しかし、これではタブを多く開いたときに、複数のソフトウェアを起動しているのと同じになるため、ブラウザも他のソフトウェア、OS自体も遅くなる場合があります。
メモリ使用量も相当大きくなります。
Firefoxではこのプロセス数の最大値を設定することで幾つかのタブごとにプロセスが割り当てられ、高速化、安定性と、メモリ使用量やCPU稼働率とのバランスを取っているようです。
1以上なら良いようですが、2から4あたりの数字で良いかと思います。
あまり、大きな値にするとメモリ使用量が増えます。
一般にAndroid端末はPCよりもメモリは少ないので、注意しましょう。
browser.tabs.remote.autostart.2
という項目を「true」にします。
browser.tabs.remote.autostart
の場合もあります。
これらの項目が無い場合には、「about:config」画面の左上の「+」ボタンをタップして項目を作ってください。
設定が終わったら、一旦Firefoxを終了して再起動します。
アドレスバーに「about:support」と入力して、トラブルシューティング情報の画面を開きます。
「マルチプロセスウィンドウ」という項目が「1/1」となったら成功です。
結論から言うとAndroidではうまく動いていないようです…。
「マルチプロセスウィンドウ」の下の「ウェブコンテンツプロセス」の項目が「0/2」となっているからです。
「dom.ipc.processCount」を2と設定したので最大プロセスが2となっています。
PCであれば、ここが「1/2」や「2/2」となっているはずです。
これはタブごとに別のプロセスを割り当てるということができていないということでしょう。
残念。
Android端末はマルチコアのCPU(SoC)がほぼ全てなので、これらをフルに使えればかなり高速になるのではないかと思うのですが。
もうすぐ正式版となるバージョン57(Firefox Quantum)では少し違うのでしょうか?
気になるところです。
追記
www.reddit.com/r/firefox/comments/6d4x91/multiprocess_not_working_in_firefox_54_beta_for/
ここのスレッドによると、Android版Firefoxはすでにマルチプロセスなのだそうです。
Android版Firefoxはコンテンツ表示にGeckoを使っているものの主要部分はJavaで作られているので、PC版Firefoxと比べるのはリンゴとオレンジを比べるものだと書かれています。
上記設定をしていなくてもマルチプロセスで動いているとのことですが、上記設定は全く意味がないのかどうか。
追記終わり
ちなみに紹介したabout:configの設定はPC版でも有効です(PC版の設定をAndroid版でもしてみたということなので当たり前ですが)。
古くからFirefoxを使っていて、そのころの設定のせいでマルチプロセスが有効になっていないこともあるのでこれらの項目を確認すると良いでしょう。
(追記あり)Android版Firefoxをインストールしたら行う設定、インストールするアドオンなど - あれこれ備忘録@はてなブログ
ここで紹介したAndroid版Firefoxのアドオンはバージョン56時点ではまだ動くものの、バージョン57以降では動かなくなるものがほとんどだと思います。
ユーザーエージェントを偽装するPhonyなどが使えなくなります。
その代わり、uBlock Originなどはうまく動くようになり、Tampermonkeyなども使えるようになるものと思われます。
移行の準備をしておいた方が良さそうです。
本来、今のバージョン56はその移行期間なので、旧版とWeb Extension版の両方が使えるほうが良いのですが、PC版と異なりAndroid版ではまだ旧版の方は動いてもWeb Extension版はうまく動かないようです。