こんにちは!Hojoです! やっと金曜日ですね!週末の予定は決まりましたか?
今回のトピックでは、Vivaldiでより快適にブラウジングをするためのテクニックをご紹介! Vivaldiのメモリー処理方法、使用量を減らすためのオススメの方法などに関してよく問い合わせがあるので、いつかブログにて紹介しようと思っていました。
知ってる方も多いとは思いますが、おさらいも兼ねてもう一度!
メモリー使用量を減らす方法の前に、Vivaldiがどうメモリーを使用しているかを見てみましょう。
マルチプロセスモデル
最新のオペレーティングシステムでは、各アプリケーションに個別のプロセスが割り当てられます。プロセスは、実行されているコンピュータプログラムのインスタンスとして定義することができます。このアーキテクチャにより、単一のアプリケーションがクラッシュしても、他のアプリケーションやオペレーティングシステム全体が正常に動作するように保つことができます。音楽プレーヤーがクラッシュしたりした時に、スプレッドシートやテキストエディタなど、使用中の他のアプリケーションも一度に全て落ちてしまったら、、想像しただけで不快ですよね。幸いにも、現代のオペレーティングシステムでこれは起こりません。それぞれのプロセスは他のプロセスとは直接繋がっておらず、隔離されているからです。これと同様の設計技法が、Vivaldiの土台であるオープンソースブラウザーエンジン、Chromiumにも入っています。この様式は、マルチプロセスモデルと呼ばれます。
大きなウェブサイトはより大きなプロセスを必要とする
ウェブが普及し始めた頃は、ウェブサイトははるかにシンプルで、訪問したすべてのページを、ブラウザーが同一のプロセス上でレンダリングするのが普通でした。最近では、ウェブサイトの平均サイズが大幅に拡大しています。 httparchive.orgによって提供された統計によると、2017年の平均ウェブページサイズは2959kbでした。ちなみに、2010年は702kbと、4分の1以下だったんです。
解決方法は、オペレーティングシステムと同じように、これらのアプリケーションを互いに分離させておくことです。ウェブサイトにバグや悪意のあるコードが含まれている場合、他のタブやブラウザー全体には影響しません。
これにより安定性は増しますが、メモリー使用量も増えるという副作用もあります。データとリソースをタブと拡張機能(シングルプロセスモデル)間で共有すること優先したブラウザーエンジンもあります。これによりメモリー使用量が減少する可能性がありますが、一つのウェブサイトまたは拡張機能が不正に動作しただけで、ブラウザー全体がクラッシュする可能性が出てきます。
仮に、2つの拡張機能を使用し、5つのタブを同時に開いていたとします。お使いのブラウザーは、おそらく約9つの独立したプロセスを使用しているでしょう(プラットフォーム次第)。5つはタブ用、2つは拡張用、1つはGPU用、もう1つはブラウザー自体のためのものです。さまざまなタイプのプロセスがあることがお判りいただけると思います。これらは、以下の4つの異なるカテゴリに分けることができます。
ブラウザープロセス
このプロセスはユーザインタフェースを担い、ディスクやネットワークI / O、およびその他のすべてのプロセスがその上で実行されます。Vivaldiが起動すると、新しいブラウザープロセスが一つ作成されます。
レンダラープロセス
これらは、個々のブラウザータブでレンダリングを行います。HTML、CSS、JavaScriptなど処理がそれにあたります。前述のように、新しいタブで開くと、各ウェブサイトに対して新しいレンダラープロセスが作成されます。アドレスバーに別のサイトのURLを入力すると、Chromiumはそのタブに対して、古いレンダラープロセスを新しいプロセスに置き換えます。したがって、複数のレンダラープロセスが同時にアクティブになる可能性がありますが、新しいタブが常に新しいプロセスを生成するとは限りません。
プラグインプロセス
Adobe Flashのようなブラウザープラグインは、それぞれ別のプロセスで動作します。アクティブなプラグインの種類ごとに、1つのプロセスインスタンスがあります。たとえば、すべてのFlashのインスタンスは、異なるサイトまたはタブに表示されていても、同じプロセスで実行されます。特定のプラグインを使用してすべてのページを閉じると、そのプロセスは短時間のうちに破棄されます。
拡張機能プロセス
広告ブロッカーやパスワード・マネージャーのような拡張機能も、独自のプロセスを必要とします。
これらの別々のプロセスを持つことで、ブラウザーのセキュリティと信頼性が向上します。これはマルチプロセスモデルの主なメリットの1つと言えるでしょう。 Chromiumのレンダラープロセスは、ユーザーのコンピューターへのアクセスが制限されている、サンドボックスプロセス内で実行されます。実際の砂場(英: sandbox)と同様に、各プロセスの周りに制限を設けた環境を構築するように設計されています。たとえば、コンピューターに損害を与える悪意のあるコードを含むウェブページを開いた場合、サンドボックスは他のタブ、ブラウザー、またはコンピューターの他の部分へのさらなるダメージを防ぎます。これらのプロセスは、ブラウザープロセスを通じてのみアクセスできる限られたリソースにしかアクセスできません。
メモリー使用量を削減する方法
タスクマネージャを定期的に使用する
マルチプロセスモデルの利点は、ブラウザーのメモリー使用量を自分で制御できることです。メニューバーを見て、ツール>タスクマネージャーに行くと、Vivaldiのすべてのアクティブなプロセスと、それぞれのメモリー使用量にアクセスできます。ここでは、メモリーを独占しているウェブアプリケーションを特定し、それが大量のリソースを要するものであるからか、またはメモリーリーク(サイトがどんどんメモリーを使用していく場合は、リークが発生します)が発生しているためなのかを見ることができます。タスクマネージャーからタブまたは拡張機能を選択し、「プロセスを終了」により終了します。タブバーにはタブが表示されますが、タブを開くとタブ(またはプロセス)がアクティブではないことを示す、黒い画面が表示されます。
リソースを解放するためのタブの休止
Vivaldiは、個々のタブとタブスタックにおける手動での休止機能があります。これにより、メモリーを使用するタブを指定することができます。タブまたはタブスタック上で右クリックし、[タブを休止/タブスタックを休止]を選択するだけです。ここでは、ブラウザーがタブを破棄し、ウェブコンテンツを破棄し、空のタブに置き換えます。休止状態のタブに再度アクセスするたびに、空のタブがページを再読み込みするので、ページが更新されることがわかります。全体的に見ると、ブラウザーのメモリー占有量が減少します。たとえばあるトピックを調べている間、必ずしもすぐには必要ないタブが開いている際には、それらをスタックしてからスタック全体を休止することをお勧めします。必要なときでも簡単にアクティブにできますが、他のアクティブなタブと同じようにメモリーを使用することはありません。
拡張機能やプラグインに注意する
ご存知の通り、VivaldiはChromium上で構築されているため、Chromeウェブストアで利用できる拡張機能をVivaldiにそのままインストールすることもできます。多くの拡張機能がインストールされていると、その分かなりのメモリーがもちろん蓄積されます。もう使用していないか、頻繁に使用していない拡張機能があれば、一度見返す機会があったほうがいいかもしれませんね。
でも、完全に拡張機能をアンインストールする代わりに、最初に無効にしてみてください。拡張機能を無効にするには、Vivaldiメニュー>ツール>拡張機能を選択します。オフにしたい拡張機能を見つけて、[有効]の横にあるチェックボックスをオフにします。実際にメモリーを節約したい場合は、特定のビルトインプラグインを無効にして、アクティブなプロセスの数を減らすこともできます。デフォルトでは、Flashプラグインはオフになっていますが、VivaldiはFlashコンテンツを見るたびに一時的に有効にすることもできます。
多くのユーザーは、ブラウジングの動作やカスタマイズが、メモリー処理にどのように影響するかを認識していないでしょう。もし、たくさんの未使用の拡張機能を持つ人が周りにいたら、メモリー使用量を減らす方法について教えてあげてください。
快適で楽しいブラウジングを!
Hojoでした!