VSCodeのメモリ使用量を制限する設定方法【完全ガイド】

プログラミング・IT

VSCodeを使っていて、動作が重くなったり、メモリ使用量が増えすぎて困っていませんか。
特に大規模なプロジェクトを開いていると、メモリが数GBにも達することがあります。

この記事では、VSCodeのメモリ使用量を効果的に削減する設定方法を解説します。
設定を適切に調整することで、快適な開発環境を取り戻せるでしょう。

スポンサーリンク

VSCodeがメモリを大量消費する主な原因

VSCodeのメモリ使用量が増える原因は、主に3つあります。

ファイル監視システム
VSCodeは、プロジェクト内のファイル変更を監視しています。
node_modulesやbuildフォルダなど、大量のファイルを含むフォルダも監視対象になるため、メモリとCPUを大量消費します。

拡張機能の負荷
インストールした拡張機能は、それぞれがメモリを消費します。
特に最適化されていない拡張機能や、多数の拡張機能を同時に有効にしていると、メモリ使用量が急増します。

TypeScriptの型チェック
TypeScriptやJavaScriptプロジェクトでは、言語サーバーが常に型チェックや解析を行います。
大規模なコードベースでは、この処理がメモリを大量に消費する原因になります。

メモリ使用量を削減する基本設定

メモリ使用量を削減するための基本的な設定を紹介します。
これらの設定は、settings.jsonファイルに記述します。

settings.jsonを開く方法

  1. Ctrl + Shift + P (Macは Cmd + Shift + P) を押す
  2. 「Preferences: Open User Settings (JSON)」を入力して選択
  3. settings.jsonファイルが開く

ファイル監視の除外設定

ファイル監視から不要なフォルダを除外することで、メモリ使用量を大幅に削減できます。

{
  "files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/**": true,
    "**/dist/**": true,
    "**/build/**": true,
    "**/tmp/**": true,
    "**/.cache/**": true,
    "**/coverage/**": true,
    "**/__pycache__/**": true,
    "**/.pytest_cache/**": true
  }
}

この設定により、VSCodeは指定したフォルダ内のファイル変更を監視しなくなります。
node_modulesやビルド成果物など、頻繁に変更されるが監視不要なフォルダを除外しましょう。

検索とエクスプローラーの除外設定

検索やエクスプローラーからも不要なファイルを除外できます。

{
  "search.exclude": {
    "**/node_modules": true,
    "**/bower_components": true,
    "**/dist": true,
    "**/build": true,
    "**/.git": true,
    "**/coverage": true
  },
  "files.exclude": {
    "**/.git": true,
    "**/.DS_Store": true,
    "**/__pycache__": true,
    "**/node_modules": true,
    "**/.vscode": true
  }
}

これらの設定により、検索処理が高速化され、エクスプローラーの表示もすっきりします。

大きなファイルを開く際のメモリ設定

VSCodeで大きなファイルを開く場合、メモリ上限を設定できます。

files.maxMemoryForLargeFilesMB

この設定は、大きなファイルを開く際にVSCodeが使用できるメモリの上限を指定します。
デフォルト値は4096MB(4GB)です。

{
  "files.maxMemoryForLargeFilesMB": 8192
}

メモリに余裕がある場合は、この値を増やすことで大きなファイルを開けるようになります。
逆に、メモリを節約したい場合は値を減らすことも可能です。

コマンドラインから起動する方法

VSCodeを起動する際に、コマンドラインから直接メモリ上限を指定することもできます。

Windows

code --max-memory=8192

macOS/Linux

code --max-memory=8192

この方法は、一時的に大きなファイルを開く必要がある場合に便利です。

TypeScript/JavaScriptプロジェクトの最適化

TypeScriptやJavaScriptプロジェクトでは、専用の設定でメモリ使用量を削減できます。

{
  "typescript.tsserver.log": "off",
  "typescript.disableAutomaticTypeAcquisition": true,
  "typescript.tsserver.experimental.enableProjectDiagnostics": false
}

各設定の説明

typescript.tsserver.log
TypeScriptサーバーのログ出力を停止します。
ログ記録によるディスクI/Oとメモリ消費を削減できます。

typescript.disableAutomaticTypeAcquisition
外部型定義の自動ダウンロードを無効化します。
不要な型定義のダウンロードを防ぎ、メモリを節約します。

typescript.tsserver.experimental.enableProjectDiagnostics
プロジェクト全体の診断機能を無効化します。
大規模プロジェクトでの診断負荷を軽減できます。

TypeScriptキャッシュのクリア

TypeScriptの内部キャッシュが肥大化している場合、削除することで改善することがあります。

Windows

C:\Users\<ユーザー名>\AppData\Local\Microsoft\TypeScript

macOS

~/Library/Caches/typescript

Linux

~/.cache/typescript

このフォルダを削除後、VSCodeを再起動してください。
ただし、これは推奨手順ではなく、問題が発生している場合のみ試すべき対処法です。

パフォーマンスに影響する設定

開発体験を損なわない範囲で、パフォーマンスを向上させる設定を紹介します。

{
  "editor.accessibilitySupport": "off",
  "editor.smoothScrolling": false,
  "editor.minimap.enabled": false,
  "editor.renderWhitespace": "selection",
  "editor.largeFileOptimizations": true
}

editor.accessibilitySupport
アクセシビリティサポートを無効化します。
スクリーンリーダーを使用しない場合は、オフにすることでメモリを節約できます。

editor.smoothScrolling
スムーススクロールを無効化します。
スクロール時のアニメーション処理が不要になり、軽快に動作します。

editor.minimap.enabled
ミニマップを非表示にします。
ミニマップが不要な場合は、オフにすることでメモリを削減できます。

editor.largeFileOptimizations
大きなファイルに対する最適化を有効化します。
構文ハイライトなどの機能を制限し、パフォーマンスを優先します。

拡張機能の管理

拡張機能は、メモリ使用量に大きく影響します。

実行中の拡張機能を確認する方法

  1. Ctrl + Shift + P (Macは Cmd + Shift + P) を押す
  2. 「Developer: Show Running Extensions」と入力して選択
  3. 各拡張機能の起動時間とメモリ使用量が表示される

Activation時間が長い拡張機能は、パフォーマンスに悪影響を与えている可能性があります。

Extension Bisectで問題の拡張機能を特定

  1. Ctrl + Shift + P (Macは Cmd + Shift + P) を押す
  2. 「Help: Start Extension Bisect」と入力して選択
  3. 二分探索で問題の拡張機能を特定できる

この機能を使うと、どの拡張機能が問題を引き起こしているか効率的に見つけられます。

拡張機能の整理方法

本当に必要な拡張機能だけを有効化
使用頻度の低い拡張機能は、無効化またはアンインストールしましょう。
月に一度、インストール済み拡張機能を見直すことをおすすめします。

ワークスペースごとに拡張機能を管理
プロジェクトによって必要な拡張機能は異なります。
フロントエンド開発用とバックエンド開発用で、別々のワークスペースを作成するのが効果的です。

ビルトイン拡張機能の見直し
VSCodeには多くのビルトイン拡張機能が含まれています。
使用しない言語のサポート拡張機能は、無効化できます。

拡張機能マーケットプレイスで「@builtin」と検索すると、ビルトイン拡張機能の一覧が表示されます。

プロセスエクスプローラーで原因を特定

メモリやCPUを大量消費しているプロセスを特定できます。

  1. Ctrl + Shift + P (Macは Cmd + Shift + P) を押す
  2. 「Developer: Open Process Explorer」と入力して選択
  3. 実行中のプロセスとリソース使用状況が表示される

Extension Hostの項目がメモリを大量消費している場合、拡張機能に問題がある可能性が高いです。

ワークスペース設定の活用

プロジェクトごとに異なる設定を適用したい場合、ワークスペース設定を使用します。

ワークスペース設定の作成方法

  1. プロジェクトのルートフォルダに「.vscode」フォルダを作成
  2. その中に「settings.json」ファイルを作成
  3. プロジェクト固有の設定を記述

例えば、Symfonyプロジェクトでキャッシュフォルダを除外する設定は以下のようになります。

{
  "files.watcherExclude": {
    "**/var/cache/**": true,
    "**/var/log/**": true
  }
}

ワークスペース設定は、ユーザー設定よりも優先されます。
チーム開発では、ワークスペース設定をGitでバージョン管理することで、メンバー全員で同じ設定を共有できます。

トラブルシューティング

設定を変更しても改善しない場合の対処法を紹介します。

VSCodeプロセスの完全終了

バックグラウンドで実行中のVSCodeプロセスが残っている場合があります。

Windows

taskkill /F /IM code.exe

macOS/Linux

pkill -9 code

すべてのVSCodeプロセスを終了してから、再起動してください。

拡張機能を無効化して起動

すべての拡張機能を無効化した状態でVSCodeを起動できます。

code --disable-extensions

この状態で問題が解決する場合、拡張機能が原因です。

クリーンインストール

設定やキャッシュを完全にクリアしたい場合は、以下のフォルダを削除してからVSCodeを再インストールします。

Windows

%APPDATA%\Code
%USERPROFILE%\.vscode

macOS

~/Library/Application Support/Code
~/.vscode

Linux

~/.config/Code
~/.vscode

まとめ

VSCodeのメモリ使用量を削減するには、以下の対策が効果的です。

ファイル監視の除外設定
node_modulesやビルドフォルダなど、監視不要なフォルダを除外することで、メモリとCPU使用量を大幅に削減できます。

拡張機能の整理
本当に必要な拡張機能だけを有効化し、定期的に見直しましょう。
プロセスエクスプローラーで、リソースを大量消費している拡張機能を特定できます。

TypeScript設定の最適化
TypeScript/JavaScriptプロジェクトでは、型チェックやログ出力の設定を調整することで、メモリ使用量を削減できます。

大きなファイルへの対応
files.maxMemoryForLargeFilesMB設定や–max-memoryフラグを使用して、大きなファイルを扱う際のメモリ上限を調整しましょう。

これらの設定を組み合わせることで、メモリ使用量を1/3程度まで削減できる場合もあります。
自分の開発環境に合わせて、設定を調整してください。

快適な開発環境を取り戻すために、まずはファイル監視の除外設定から始めてみましょう。

コメント

タイトルとURLをコピーしました