はじめに
ある日ふと思いました。
なんか VSCode めっちゃ重いやん?🤔
- マウスや UI が固まる
- GitLens のコミットログが出ない
- Copilot の補完が止まる
最初は「まあリロードすれば直るし…」とごまかしてました。
でも毎回リロードはつらい…。
エンジニアとして「根拠に基づいて改善しよう」と思い直しました。
改善の進め方
ソフトウェアのパフォーマンス改善と同じように最初に方針を立て、以下の流れで改善しました。
- 目標を決める
- 測定
- 解析
- 解決策を考える
- 実行・効果測定
Step 1: 目標を決める
ちゃんと何が重いのか確認するとこから始めました。
「重い」をちゃんと分解すると…
- VSCode が固まる(マウスすら動かない)
- コミットログが表示されない
- Copilot の補完が出ない
👉 これらを解決して、ストレスフリーにする!
Step 2: 測定
VSCode にはパフォーマンス調査に役立つ機能がいくつかあります。
- Startup Performance
- Developer Tools
- Process Explorer
ひとつずつ確認していきました。
Startup Performance
VSCode の起動時間を測定できる機能です。
Ctrl+Shift+P
→ 「Startup Performance」と入力すると、起動処理のタイムラインが表示されます。
👉 今回は起動が重いわけではなかったので除外。
Developer Tools
UI やネットワーク関連のエラーを確認できます。
Help > Toggle Developer Tools
から開いて Console や Network をチェック。
👉 エラーなし、ネットワークも問題なし。
Process Explorer
VSCode の各プロセスの CPU / メモリ使用率を確認できます。
Help > Open Process Explorer
で確認可能。
👉 ここで大発見。拡張機能プロセスが CPU 99% に張り付いていました!
(記事にするとは思ってなく CPU が張り付いた実際の画像ないです🥺)
Step 3: 解析
「拡張機能が怪しい」のは分かったけど、 Process Explorer はどの拡張機能が原因かを教えてくれません🥺。
そこで Extension Bisect を発動!
Extension Bisect
VSCode に標準で備わっている「拡張機能切り分け」ツールです。
-
Help > Start Extension Bisect
を選択 - 拡張が半分ずつ無効化される
- 再現するかどうか答えていく
- 繰り返すことで原因拡張を特定
👉 この結果、自分の場合、犯人は Rails 拡張機能 でした。
Step 4: 解決策
Rails 拡張は便利だけど、自分はほとんど使っていなかった…。
しかも他の補完と競合。
いらないやん。
👉 思い切って削除!えい!!
Step 5: 効果測定
拡張機能を削除したら…
- CPU 使用率が 99% → 10% に改善
- 体感でも明らかに軽くなった
- 開発環境に平和が戻った ✨
学び
- 「とりあえずリロード」「とりあえず拡張削除」じゃなくて、
目的認識 → 調査 → 方針 → 実行 → 評価 が大事 - VSCode の Process Explorer / Extension Bisect は超強力
- 拡張機能は「おすすめされたから」じゃなくて
自分に必要かどうかで選ぶべし
おわりに
VSCode が重くて困ってる方へ
まずは標準の調査機能を試してみてください。
👉 思ってたんと違った原因が出てくるかもです