GitHub CopilotをPhpStorm上で「コードエージェント(Agent)モード」として動かすと便利ですが、CPU使用率が極端に高くなりつづけ作業に支障をきたすケースがありました。この記事では私の環境で確認した原因と対処方法を紹介します。
問題の症状は GitHub Copilotのコードエージェントが動き出してしばらくするとCPU使用率が100%近くまで張り付き、その状態が続くというものです。PhpStormはフリーズし通常のキーボード操作も重くなり大変です。
この問題の主な原因はガベージコレクタ(GC)の頻繁な実行によるCPU負荷の増加でした。Agentモードではエディタ内のファイルや作業履歴などをエージェントに手早く渡すためかメモリ領域を広く使用することがあります。PhpStormの最大メモリサイズが小さいとメモリ確保のためにGCが頻繁に走り、その結果としてCPU使用率が高くなります。「メモリが足りない → GCが働く → メモリが足りない → GCが働く →」という流れを短時間の間に頻繁に繰り返していた形です。PhpStorm設定の最大メモリサイズは守ってくれるので、PhpStormのデフォルト設定のままでこの問題が起きた時にタスクマネージャーから状況を見るとCPU使用率が極端に高くメモリはそれなりという感じです。
対処方法はPhpStormに割り当てる最大メモリサイズを増やし、一度に使われるメモリ量を小さくすることです。
まず最大メモリサイズは次の方法で増やせます。
1. Help(ヘルプ)→ Change Memory Settings(メモリ設定を変更)を選びます。
2. Maximum heapの値を引き上げます。
3. PhpStormを再起動します。
マシンに積んでるメモリ量にもよりますが、問題のない範囲でなるべく大きくしたいです(大きすぎると他プロセスがメモリの確保に苦労したり、スワップが過度に起きて遅くなったりします)。
次いで一度に使われるメモリ量を小さくする手順ですが、これは経験則できっと役に立ってる、ぐらいのものです。
– エージェントが読まなくていいディレクトリをPhpStormの除外ディレクトリに設定する
– 指示をあらかじめテキストファイルにまとめておき、指示内に読むべきファイルを明記する
こうすると余分なものを読んだ挙句にメモリに保持する、ということがなくなってよくなってる、気がします(あくまで体感なので効果がないやも)。
こんな感じで、GitHub CopilotのAgentモードでCPU使用率が高くなってしまう問題は、PhpStormのメモリ設定を見直すことで改善できる可能性があります。もし同様の症状に悩まされている方がいれば、ぜひ試してみてください。