1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeが重い時の対処法

Last updated at Posted at 2025-02-25

皆さん、VSCodeを使っている際に動作が重いと感じたことがないですか?
特に、VSCodeの拡張機能のremote-sshを使ってssh接続すると、すぐに接続が切れて再接続した経験はありませんか?

VSCodeを軽くするための方法

VSCode自身が多くのリソースを消費するため、ssh接続先のサーバがメモリの限界を迎え、接続を解除される。

拡張機能を見直そう

まずは、下記の記事を参考に、watcher Excludeを適切に設定し、監視ファイルを限定する。この設定では例えば、Gitがどのファイルの変更を追跡するかである。この設定を何もしない場合は、すべてのファイルを監視するため、ファイルの変更をした際にVSCodeのソース管理のところに変更が反映される。しかし、すべてのファイルを管理する場合は、大きいプロジェクトになるとそれだけでリソースを消費する。そのため、追跡する必要がないnode_modulesvenderなどのファイルを設定すればよい。
もしそれでもremote-sshが切断される場合は、**を追加することで、すべてのファイルを追跡しないように設定できる。この場合、Gitのソース管理は変更を検知しないので、リロードボタン(下の画像の赤で囲んだボタン)を押さないとファイルの変更を反映できない。

image.png

次に、拡張機能の必要性を考える。拡張機能の中には、リソースの消費が、多いものがある。そのため、ssh接続がすぐ切断されてしまう場合には、これらの拡張機能を無効にして試してみよう。

Typescriptを用いた開発の設定

Typescriptには、ビルドインでもともとインストールされている「TypeScript と JavaScript の言語機能」という拡張機能がある。どうやらこの拡張機能が多くのリソースを消費するようだ。そのため、setting.jsonに次の設定を行うことでTypescriptを用いた開発の動作を改善することができるかもしれない。

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

こちらの記事参照

現在のメモリ使用量を確認しよう

ここまでの設定を行っても、改善しない場合は、ssh接続先のサーバのメモリ使用状況を確認しよう。
もしかすると、想定外のプロセスが走っていてメモリを無駄に食っている可能性がある。
Linuxの場合は次のコマンドで確認することができる。

まずは、freeにより、メモリの使用量を確認する。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           15Gi        6Gi        3Gi        1Gi        6Gi        8Gi
Swap:          2Gi        0Gi        2Gi
  • total:システムに搭載されているメモリの合計量
  • used:現在使用中のメモリ量
  • free:完全に未使用のメモリ量
  • shared:複数のプロセス間で共有されているメモリ量
  • buff/cache:バッファやキャッシュとして確保されているメモリ量
  • available:新しいプロセスが使用可能なメモリ量(free + buff/cache とは異なり、すぐに利用できる分を計算)

つまり、availableを見ることで、今後利用できるメモリを確認することができる。

次に、ps auxにより、現在走っているプロセスが割り当てられているメモリを確認することができる。

$ ps aux --sort=-$mem | head -n 5
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1234  5.0 10.5 8000000 4200000 ?      Ssl  10:00   2:30 /usr/lib/firefox/firefox
root       5678  3.2  8.3 6000000 3200000 ?      Ssl  09:50   1:45 /opt/google/chrome/chrome
user      11223  2.1  6.7 5000000 2700000 ?      Sl   11:30   1:15 /usr/bin/gnome-shell
mysql      9876  1.5  5.8 4000000 2300000 ?      S    08:15   0:55 /usr/sbin/mysqld

これを実行することで、メモリ使用量が多いプロセスの上位5個を表示することができる。
ここから、必要のないプロセスを終了(kill)することでメモリを開放することができる。

ちなみに、特定のプロセスを終了(kill)する方法は以下の通りである。

$ kill <プロセスID>

プロセスIDは、先ほどプロセスを検索した(ps aux ~~~)際に出てきたPIDの値を入力する。もしこれでプロセスを終了することができない場合は、-9を指定することで、強制終了することができる。しかし、強制終了すると次に同じプロセスを走らせるときにエラーを生じる可能性があるのでお勧めはできない。

kill -9 <プロセスID>

ここまでが、私が知っている限りのVScodeを軽くする方法である。もし、自分のパソコンのメモリが少ない場合やssh接続先のサーバのメモリが少ない場合には試してみてほしい。

私自身、まだまだ勉強中のため、誤っている部分があるかもしれません。
もし間違いがありましたら、修正のリクエストやコメントで教えていただけると嬉しいです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?