実際に動いているもの
プロセスのタブを開くと、Electronアプリは小さなプロセスツリーに分解されます。メインプロセス、複数のレンダラー、GPUプロセス、クラッシュハンドラー、アップデーター。各レンダラーは独自のV8ヒープ、フレームワークコードの独自コピー、独自のガベージコレクターを持つ完全なChromiumエンジンで、すでに開いているブラウザーとは何も共有しません。だから数個のワークスペースを開いたSlackはアイドルで1GBを超え、ウィンドウを閉じてもトレイに十数個のプロセスが生きたまま残るのです。
ディスクとバッテリーの請求書も同じ論理です。インストーラーはランタイム全体を同梱するため、「軽量」なチャットクライアントでもディスク上では数百メガバイトあり、数個並べれば置き換えたプログラムより重くなってしまいます。ノートPCでは、常駐し続けるChromiumツリーは理論上ではなく現実のバッテリー時間を食べます。
RAMの数値より重く感じるわけ
メモリは物語の半分です。体感の重さの正体は起動とインターフェースの遅延です。起動のたびに各アプリはV8を回し、JavaScriptバンドルをパースし、文書向けに作られたレイアウトエンジンで——ネイティブウィジェットではなく——UIを描画します。回転するディスクや繁忙のCPU上では、これは白いウィンドウの数秒です。長いメッセージ履歴、アニメーション絵文字、会話全体を再描画するwebviewが残りを担います。エンジンは、ネイティブクライアントならコストのほんの一部で済む汎用の仕事をしているのです。
アプリを手放さずにChrome税を減らす
現実的な目標はゼロではなく、Chromiumインスタンスを減らすことです——これらのアプリを使うのは、サービスがそこに住んでいるからです。一握りの習慣が利得のほとんどをカバーし、どれも、本当に必要な道具を諦めることを要求しません。
- サービスにブラウザー版があるならそちらを優先——既に開いているブラウザー内の1レンダラーは、まるごと新しいランタイムより有利
- 「閉じたときにトレイにしまう」をオフにする、または本当に終了する。そうすればプロセスツリーは一日の終わりに本当に解放されます
- ワークスペースとログインアカウントを削る——どれも通常、別のレンダラーを生かし続けます
- アプリが設定を持つなら、アニメーション絵文字、GIF自動再生などの装飾スイッチを無効化
- 1つのウィンドウに5つのサービスを詰め込むオールインワンラッパーは避ける——税を合算するだけで共有はしません
- 一日中使うサービスなら、ブラウザーの固定タブかインストール済みPWAがすべてを通じて単一インスタンスを保ちます
よくある質問
ElectronアプリはなぜそんなにRAMを使うのですか?
どれもウィンドウやワークスペースごとに独立したレンダラープロセスを持つ専用のChromiumを実行し、ブラウザーや互いに何も共有しません。Electronアプリ5つは、事実上横並びで走る5つのブラウザーです。
Electronアプリの軽い代替はありますか?
多くの場合、あります。同じサービスを通常のブラウザータブで、またはPWAとしてインストールすると、別のChromiumを積むのではなく既に動かしているブラウザーを再利用します。Electron版の数分の一の重さのネイティブクライアントを提供するサービスもあります。
購入前にライセンスの内容をご確認ください。
一度限りの 30 分試用では基本ツールを利用できます。PRO 機能は有料ライセンスを有効にするまでロックされています。
お問い合わせ: [email protected]