vscodeで不具合のある拡張機能を特定する方法
vscodeをアップデートしたらプロセスが暴走するようになりました。
アクティビティモニタ(macのプロセス監視ツール)を見てみるとCode Helper (Renderer)
というプロセスが100%を超えています。
色々とググってみても解決しないので、どうやら機能拡張が悪さをしているのではないかと思い調べることにします。
拡張機能を特定する
とは言っても、私の環境ではインストール済みの機能拡張は100以上あります。特定する為には機能拡張を一つづつオンオフを繰り返すという途方も無い作業が必要。
しかし2021年9月16日現在、vscodeには「拡張機能のバイセクト」という機能があります。
左の機能拡張アイコンをクリック → 左上にある拡張機能メニューから「...」をクリックすれば出てきます。
「拡張機能のバイセクトを開始」をクリックすると作業開始です。
するとvscodeがリロードされて、機能拡張が一つだけ有効になっている状態になります。
この状態で問題が起きていないなら「Good now」をクリックします。問題が起きているのなら「This is bad」をクリックします。
アクティビティモニタを開いてしばらく(10秒から20秒くらい)待ってみるとCPU使用率は落ち着いています。どうやら問題は出ていないようなので「Good now」をクリックします。
次は無効化されている拡張機能が半分になってリロードされるので、同じように問題がないか確認して適したボタンをクリックしていきます。これを数回繰り返します。
(中略)
最終的に問題があるのはms-pythonの拡張機能だと特定できました。
「問題を報告して続行」というボタンがありますが、再現手順を英語で書く必要があるので今回は送りませんでした。
GitHubにIssueを立てる感じなのかな。
まとめ
問題の原因になっているのが使わなくても良い拡張機能なら無効化(もしくはアンインストール)すれば良いのですが、今回はpythonを書くのに必須の拡張機能なのでさらなる原因究明が必要になります。それでも原因の洗い出しとしては役に立つので覚えておいて損は無いと思います。
Discussion