PR

Visual Studio Codeの統合ターミナルがプチフリーズ(ラグる)、原因はmacOS Big Sur

Visual Studio Code 1.52.1(以下vscode)をMid2015 + Big Sur 11.1で利用しています。

vscode上でシェルを動作させることができる統合ターミナルがあります。結構利用する機能なのですが問題が発生しています。

シェルでコマンドを入力中、キー操作中、たまに2、3秒固まり(ラグる)操作性が著しくなっています。

ここではmacOS Big Surの不具合が与える影響の一つをまとめています。

vscodeのgithubをチェックしたところ、ラグる対処方法がわかりました。
1)Integrated Terminal Lags Intermittently:https://github.com/microsoft/vscode/issues/105446
一時的な解決方法としてアプリのコード署名を削除する方法が記載されています。

codesign –remove-signature /Applications/Visual\ Studio\ Code.app/Contents/Frameworks/Code\ Helper\ \(Renderer\).app

Visual Studio Code.app本体ではなく、その中で使われているRendererアプリだけが影響を受けているようです。

メリット)統合ターミナルがラグることなく快適になる
デメリット)ウィルス対策ソフトでマルウェアとして認識されることがある
デメリット)アプリを再インストールしても削除した署名は元に戻らない模様

元に戻す方法がない感じなので、試せません・・・

さらに読み進めていくと、macOS Big Surのみで発生し、コード署名が影響を与えることがわかりました。

現象は常時発生し、300〜3000ミリ秒ロック、運が悪い時は3秒応答がないということがわかります。
2)child_process spawn locks up renderer for 300 – 3000ms on signed app on macOS Big Sur:https://github.com/electron/electron/issues/26143

これらIssueを読み進めると「アプリのコード署名」有無で動作が変わることが明らかになります。
ローカルコンパイルしたアプリ 快適
        配布版アプリ ラグる

コード署名の有無で挙動が変わる=>Big Surが原因と思われるという感じです。

すでにアップルへバグレポート提出済みのようです。
vscode自体でも別方式を採用する流れが出来つつあります。

まとめ

・Big Surのコード署名周りには問題があり、想定外のアプリの挙動に影響を与える
 node child_process spawnを利用しているプログラムはロック多発
 プロセス、スレッドをロックする時間は300msから3000ms
 オンライン・オフラインの違いはない

・影響を受けているアプリが特定できれば、アプリのコード署名を削除することで解決できる

・アプリのコード署名を削除するとマルウェア認定される、元に戻せない可能性がある

タイトルとURLをコピーしました