チャットアプリの中にブラウザが動いています
SlackはElectronというフレームワークで作られています。ElectronはGoogleのChromeブラウザエンジンをアプリケーションに組み込みます。Slackを起動すると、チャットアプリを起動しているのではなく、実質的に2つ目のWebブラウザを起動していることになります。すでにChromeやFirefoxを開いていても同様です。
これはSlack固有の欠陥ではなく、Electronアプリ全般に言えることです。しかしそれが、Slackが重いブラウザタブを何十個も開いたのと同様の影響をシステムに与える理由を説明しています。
メモリだけの問題ではありません
RAMがよく注目されますが(Slackは1 GB以上消費することがある)、動作を遅くさせる要因はほかにもあります:
CPU負荷:Slackはバックグラウンドタスクを継続的に実行します。操作していないときも、メッセージの同期、アップデートの確認、ステータスの送信を行っています。多くのPCでCPU使用率1〜5%で稼働し続け、他のプログラムに余裕を与えません。
メモリ圧迫:Slackが1 GBのRAMを確保すると、他のアプリに使えるメモリが1 GB減ります。ブラウザ、デザインツール、ドキュメントエディター、Slackを同時に使うと、PCはメモリの代わりにHDD/SSDを使い始め(スワッピング)、動作が劇的に遅くなります。
1日を通して悪化する理由
Slackのメモリ使用量は起動後も増え続けます。バックグラウンドキャッシュが蓄積し、Chromiumが使用したメモリの一部を解放しません。朝の起動時400 MBだったものが、夕方には1.5 GB以上になることがあります。遅さを最も感じるのがこの時間帯です。
古い・標準スペックのPCでより深刻になる理由
32 GBのRAMがあればSlackの影響はほとんど感じません。8 GBだと毎日実感します。1 GBのRAMは、一方のPCでは3%、もう一方では12%です。
数年前に購入したノートPCや会社支給の標準スペックPCをお使いなら、Slackの影響は現実問題になっています。
今すぐできること3つ
- 席を離れるときはSlackを完全終了する。最小化ではなく、メニューから完全に終了する。RAMとCPUを完全に解放します。
- 接続するワークスペースを減らす。各ワークスペースがメモリ使用量を増やします。あまり使わないものからはサインアウトを。
- ハードウェアアクセラレーションを無効化する(環境設定 → 詳細設定)。GPUプロセスを排除し、発熱とメモリを削減します。
根本的な解決を望むなら
Slackはブラウザエンジンで作られており、どんな設定もそれを変えられません。回避策は助けになりますが、問題を軽減するだけで解決はしません。
ネイティブSlackクライアントはそもそもこの問題を持ちません。msgaはアイドル時60 MBで動作します。他のアプリに十分な余裕が生まれます。