Open6

買ったばかりのMacBook Air(M3)のCPUがVSCodeのCodeHelperに食い尽くされるのでBisectしたらbradlc.vscode-tailwindcssが原因だった話

hosaka313hosaka313

What

タイトルの通り。

前提

  • MacBook Air(M3)15インチを購入(Apple認定整備済み)
  • VSCode等をセットアップ完了し、devcontainerに繋いだりDockerをフル稼働していた
  • 発熱がすごい&充電してもバッテリーが減っていく
  • VSCode: Version: 1.95.2
hosaka313hosaka313

当時の思考回路

アクティビティモニタは見ていたが、正常性バイアスの見本市で原因特定には至らなかった。

💬 Dockerとかフルで使っているせいかなー
💬 充電が減るのはACアダプターが弱い(「デュアルUSB-Cポート搭載35Wコンパクト電源アダプタ」)からかなー(参考
💬 15インチはやっぱり電池食うのかなー
💬 もしかして初期不良引いたかなー
💬 要らない拡張機能を消してみた(目視)けど直らないなー
💬 出来立てのCPUは食欲そそるのかなー

hosaka313hosaka313

Extension Bisectしてみる

機能自体は知っていたが、ちゃんと使ったことはなかった。

Extension Bisectをスタート

アクティビティモニターを開いておき、CPUを確認できる状態にする。

手順

名前の通り、拡張機能を半分ずつdisableして、Binary Searchで原因となる拡張機能を発見する。
だんだん赤丸の数値が減っていく。

アクティビティモニターを確認し、CPUの状態を確認する。

  • CPUがそのまま => I can reproduce
  • CPUが減った => I can't reproduce

これを繰り返し、絞り込むと調査結果が表示される。

結果

bradlc.vscode-tailwindcssが炙り出された。

https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss

hosaka313hosaka313

調査

たしかにこれをuninstallしたところ、状況は劇的に改善した。充電してもバッテリーは減らない。

Issueが上がっていた。Appleシリコン限定かはわからないが、M2 Proでも報告あり。

なお、Tailwindを使っていなくても起こる。正規表現のmatchの問題の様子。

hosaka313hosaka313

まとめ

  • 詳細は立ち入っていないが、bradlc.vscode-tailwindcssが原因だった。
    • Extension Bisectのやり方を覚えた。
  • 買ったばかりのMacBook Airを酷使することになってちょっと悲しい。
  • 同様の事象に遭遇した方の参考になれば。