VSCode 便利ですよね。
自分は最初IntelliJ使っていたのですが、VSCodeが盛り上がってきたので乗り換えました。
フリーで使えて言語によってIDEをかえる必要もなくなり、ものすごく満足しています。
VSCode はフリーで使えるIDEとしては歴代最高水準(個人的に)
(別に自分が今更絶賛することではないのですが)
- 高速に動作
- 多くの言語をサポート
- 豊富なプラグイン
- 活発なコミュニティ
そんな最高な IDE ですが、時にはPCのリソースを食い潰します。
VSCode は メモリ、CPUを出来る限り使って高速な動作を実現しています。
それはそれでよいのですが、性能が限界に達するとPCごと重くなります。
例えば、Idea の IDE は、実行環境であるJVMに上限が設定されているため、
重くなると 自分で上限を設定する必要があります。
問題がおきる背景
VSCode は、整形、補完、バリデーションを行うためにファイルを監視しています。
その仕組みが、CodeHelper というプロセスです。
Code Helper はファイルを監視しています。
そのため、ファイル数が増えると、それに応じてCPU,Memory の消費量がどんどん増えていきます。
CPUリソースが枯渇しはじめるとエディタのレスポンスが悪くなっていきます。
対策
Node のプロジェクトは、nodemodules のなかに大量のファイルがあります。
そういったファイルは標準の設定で監視対象から外されています。
ただ他のも Amplify, Create React App や Nuxt.js などを使うとビルドファイルが生成され、
そういったファイルも監視対象から外す必要があります。
Code->設定-> 基本設定
を開き、
files.watcherExclude で検索しましょう。
ユーザのパターンを追加で
"**/build/**"
などを追加することができます。
チームに共有しよう
チーム開発をしている場合は上記の対応を開発車全員に共有する必要があります。files.watcherExclude はフォルダ単位でも設定することでき、
その内容を共有することができます。
フォルダ単位で設定した内容は下記に保存されます。
project/.vscode/setting.json
このファイルを commit & push すると、そのブランチを pull したユーザの環境にもその対応を追加することができます。
VSCode はやっぱりすごい。
設定しないと重くなってしまうとはいえ、自分で設定し、さらにそれをチームに共有できる、設定ファイルもわかりやすい、という意味ではやっぱりすごいIDEだなと思います。
この情報もissueで議論されたものを参考にしたものです。
対応策がみんなで議論されていました。
今後のバージョンアップで標準設定ファイルも改善されていくと思います。