MacでVS Codeが重い?高速化する方法
MacでVS Codeの動作が遅くなっている場合は、ここで紹介する解決策を確認してください。この記事では、Mac上でVS Codeを快適に動作させる方法を学ぶことができます。
通常、VS CodeはMacでも問題なく動作します。しかし最近、一部のユーザーから、Mac全体の動作が著しく遅くなり、VS Codeが他のアプリのデータにアクセスしようとするポップアップウインドウを表示し始めた、という報告がありました。
このガイドでは、VS Codeが遅くなり、Macの動作にも影響を与える原因を解説します。その原因を理解した後、すぐに試せる対処法を学ぶためにぜひ読み進めてください。
なぜMacでVS Codeはこんなに遅いのか?
以下は、Mac上でVS Codeの動作が遅くなる主な原因です。
VS CodeはElectronを基盤として作られています。これは、ファイルを1つも開いて いなくても、700MB以上のRAMを消費する完全なChromiumブラウザのインスタンス を実行しているということです。さらに、ウインドウを開くたびに個別のレンダラープロ セスが作成され、メモリ使用量が重複します。
拡張機能は1つあたり200MB以上のメモリを消費することがあります。特に、「Pyright」、「Settings Sync」、「code-spell-checker」などの問題のある拡張機能は、「Code Helper (Plugin)」プロセスがCPU使用率100%の状態を継続的に引き起こす可能性があります。
デフォルトでは、VS Codeはワークスペース全体を監視します。これには 「node_modules」、「.git/objects」、「ビルド用ディレクトリ」などの巨大なフォルダも含まれ、大規模なプロジェクトでは最大で2〜3GBのRAMを消費することがあります。
GPUレンダラープロセスは、特に高解像度のMacディスプレイでは、常に500MB以上のメモリを使用することがあります。
macOS Ventura以降のバージョンでは互換性の問題が発生しており、VS Codeを15〜30分使用すると徐々に動作が重くなるケースがあります。
デフォルトの「TS/JS」拡張機能は、大規模なコードベースでは数GB単位のRAMを消費することがあります。これは、IntelliSenseを提供するために、開いていない何千ものファイルまでスキャンするためです。
VS Codeを閉じた後も、Code HelperプロセスがCPU使用率100%のまま動作し続けることがあります。
「node_modules」や「.git」は事前に除外設定されていますが、拡張機能によってはこれらが無視されたり、「yarn/cache」のような新しいパッケージマネージャのキャッシュやビルドフォルダが除外されない場合があります。その結果、多数の除外パターンを手動で追加する必要が生じます。
MacでVS Codeを高速化する10以上の方法
VS CodeはMac向けの非常に優れたエディターですが、ときどき動作が重く感じられることがあります。その根本的な原因は基盤にある「Electron」にあります。以下のセクションでは、パフォーマンスを向上させるための実証済みの対処法をいくつか紹介します。
VS Codeのキャッシュをクリアする
時間が経つにつれて、VS Codeには一時ファイル、拡張機能のキャッシュデータ、古くなった言語サーバー情報などが大量に蓄積されます。これらは破損したり肥大化したりして、VS Codeのパフォーマンスに悪影響を与えることがあります。そのため、BuhoCleanerのような専用ツールを使ってVS Codeのキャッシュをクリアすることが推奨されます。キャッシュを削除することで、VS Codeはインデックスを最初から再構築し、動作低下の原因となる破損データを取り除くことができます。
- BuhoCleanerを無料でインストールし、Macで起動します。
- メイン画面で、左側のメニューから「クイックスキャン」を選択します。
- 「スキャン」をクリックし、続いて 「結果を見る」を選択し、結果の中から VS Code を見つけます。
- VS Code を選択し、「削除」ボタンをクリックしてキャッシュを削除します。
エディターウインドウを閉じて作業をまとめる
VS CodeはElectron上で動作しています。そのため、ファイルを1つも開いていなくても700MB以上のRAMを消費することがあります。さらに、ウインドウを1つ開くごとに個別のプロセスが作成され、メモリ使用量が重複します。そのため、現在作業していないエディタウインドウは閉じるようにしましょう。
また、複数の別々のプロジェクトウインドウを起動する代わりに、マルチルートワークスペースを設定するのがおすすめです。メインのプロジェクトフォルダを開き、他のフォルダをワークスペースに追加するだけで、効率よく作業をまとめることができます。
問題のある拡張機能やプラグインを無効化する
不具合を起こしている拡張機能やプラグインが原因の場合は、それらを特定して無効化しましょう。
拡張機能をVS Codeで無効にする方法
- VS Codeを起動し、「Cmd+Shift+P」を押してコマンドパレットを開きます。
- 実行中の拡張機能を表示します。
- 各拡張機能の読み込み時間を確認し、動作の遅いものを無効化します。
アクティビティモニタから拡張機能を無効化する
- アクティビティモニタを開き、CPUまたはメモリ使用率で並び替えます。
- Code Helper(Renderer)や Code Helper(Plugin)という名前のプロセスを探します。
除外設定を無視しないようにする
VS Codeは、「node_modules」、「.git/objects」、「ビルドディレクトリ」などを含むワークスペース全体を監視するファイルウォッチャーとして動作します。これらは2〜3GBのRAMを消費する可能性があるため、以下のようにファイルウォッチャーの除外設定を行うとよいでしょう。
- 設定を開き、「Files: Watcher Exclude」を検索します。
- 「Add Pattern」をクリックし、以下の内容を追加します。
/node_modules//.git/objects//.git/subtree-cache//.yarn/cache//build//dist//target//.next//out/
CPUレンダリングを強制する
場合によっては、ElectronフレームワークのChromiumレンダラーがmacOSのグラフィックドライバーとうまく連携できず、GPUプロセスが大量のメモリを消費して描画の遅延を引き起こすことがあります。GPUアクセラレーションを無効にしてCPUレンダリングを強制することで、Macでの動作低下を回避できる場合があります。
GPUアクセラレーションを無効化し、CPUレンダリングを強制する方法は次のとおりです。
- 「Cmd+Shift+P」を押してコマンドパレットを開きます。
- 「設定 → Configure Runtime Arguments」を選択します。
- 「argv.json」ファイルが開くので、次の行を追加します。
disable-hardware-acceleration": true
- MacでVS Codeを再起動します。
「ウインドウの再読み込み」を活用する
動作の遅さを感じ始めたら、「ウィンドウの再読み込み」を試してみましょう。これにより、他のファイルを閉じることなく、VS Codeのフロントエンドだけを再起動できます。
「Cmd+Shift+P」を押し、「Developer: Reload Window」を実行します。
ターミナルからVS Codeを起動する
FinderからVS Codeを起動すると、環境変数が正しく引き継がれず、問題が発生することがあります。その結果、バックグラウンドプロセスが正常に動作しなかったり、停止したり、不要なリソースを消費したりする場合があります。一方、ターミナルから起動すれば、クリーンで一貫した実行環境が確保されます。すべてのコンポーネントが効率的に起動し、安定して動作するようになります。
- VS Codeを開き、「Cmd+Shift+P」を同時に押してコマンドパレットを開きます。
- 「Shell Command: Install 'code' command in PATH」を実行します。
- 「cd path/to/your/project」と入力して、プロジェクトのディレクトリへ移動します。
- 「code」と入力すると、現在のフォルダがVS Codeで開きます。
Automatic TypeScript Acquisition(ATAT)を使用する
「package.json」があるプロジェクトでは、VS Codeはそのプロジェクト専用のTypeScriptバージョンを使用できます。Automatic TypeScript Acquisition(ATAT)を利用することで、組み込みのTypeScript言語サーバーがバージョンの競合や、グローバルにインストールされたTypeScriptに対する不要な解析で負荷がかかるのを防げます。必要最小限の型定義とコンパイラ設定だけが読み込まれるため、より効率的に動作します。
- VS Codeで「TypeScript/JavaScript」プロジェクトを開きます。
- VS Code下部の青いステータスバーに表示されているTypeScriptのバージョン番号をクリックし、ATATが有効になっているか確認します。
- 「TypeScript version powered by your node_modules」などと表示されていれば正常に動作しています。
「node_modules」のスキャンを制限し、「tsconfig.json」を作成する
「tsconfig.json」ファイルを使うことで、TypeScript言語サーバーに対して、プロジェクト内でどのファイルを対象にするかを明示的に指定できます。これにより、「node_modules」、「dist」、「build」フォルダなどの巨大で不要なディレクトリをスキャン・解析してリソースを無駄遣いするのを防げます。
- プロジェクト内に「jsconfig.json」または「tsconfig.json」ファイルを作成します。
- 「include」と「exclude」フィールドを設定し、言語サーバーがすべてをスキャンしないようにします。 {"compilerOptions": {}, "include": ["src/**/*"], "exclude": ["node_modules", "dist", "build"]}
VS Codeを常に最新の状態に保つ
VS Codeは常に最新バージョンを使用するようにしましょう。アップデートによって、Macとの互換性問題を回避できる場合があります。
- MacでVS Codeを開きます。
- 画面上部のメニューバーにある「Code」をクリックします。
- 「更新の確認」を選択します。
- アップデートがある場合は、表示される案内に従ってダウンロードとインストールを行います。
<最後に>
まとめると、VS Codeの動作が遅くなる原因は、主にElectronという基盤、リソースを大量に消費する拡張機能、そして互換性の問題にあります。キャッシュの削除、拡張機能の管理、ファイルウォッチャーやTypeScript設定の最適化、ハードウェアアクセラレーションの無効化などの対策を行うことで、エディターの応答性を向上させることができます。VS Codeのパフォーマンスは固定されたものではなく、適切に管理できる状態であることを覚えておきましょう。
10年以上に渡ってWebサイト制作やMac / iOS向けのアプリケーションを開発してきた経験を持ち、その経験を活かしてiPhoneおよびMacに関する設定方法やトラブルシューティング、活用事例などの様々な記事を執筆。一般ユーザーにも分かりやすい言葉で書かれたそれらの記事は、多くの読者から好評を得ており、その読者数は現在では数百万人に達する。
