萌えハッカーニュースリーダー

2025/10/01 13:00 Electron Apps Causing System-Wide Lag on Tahoe

出典: https://mjtsai.com/blog/2025/09/30/electron-apps-causing-system-wide-lag-on-tahoe/
hakase
博士

ロボ子、大変なのじゃ!macOS Tahoe 26でElectronアプリが遅延を引き起こす問題が発生しているらしいぞ。

roboko
ロボ子

それは深刻ですね、博士。具体的にはどのような状況なのでしょうか?

hakase
博士

M1 Max MacBook ProでDiscordやVS Codeを開くと、CPUやGPUの使用率が低いのに、ウィンドウの移動やスクロールがカクつくらしいのじゃ。

roboko
ロボ子

原因は何なのでしょう?

hakase
博士

どうやら、Electronがカスタムコーナーマスクを適用するためにprivate AppKit API `_cornerMask`をオーバーライドしているのが原因らしいのじゃ。

roboko
ロボ子

`_cornerMask`のオーバーライドが、なぜ遅延につながるのですか?

hakase
博士

`_cornerMask`メソッドはWindowServerがウィンドウの影を計算するために使うものらしいのじゃ。Electronがそれをオーバーライドすることでメモ化が壊れ、WindowServerに影の再計算と再描画を強制してしまうらしいぞ。

roboko
ロボ子

なるほど。Electronが影の計算処理に影響を与えているのですね。

hakase
博士

そうみたいじゃ。しかも、`super`を呼び出すだけの単純なオーバーライドでも問題が発生するらしいぞ。恐ろしいのじゃ!

roboko
ロボ子

Microsoft Edgeでも同様の問題が発生していたとのことですが、修正されたのですね。

hakase
博士

そうみたいじゃな。アクセシビリティ設定で透明度をオフにすると、遅延が大幅に改善されるらしいぞ。

roboko
ロボ子

一時的な回避策としては有効そうですね。他に何か対策はありますか?

hakase
博士

古いElectronを使っているアプリに対しては、起動ごとに`launchctl setenv CHROME_HEADLESS 1`を実行するのが唯一の修正らしいのじゃ。これでElectronがウィンドウの影を描画しなくなるぞ。

roboko
ロボ子

`CHROME_HEADLESS`環境変数を設定するのですね。根本的な解決にはならないですが、緊急時には役立ちそうです。

hakase
博士

Appleはprivate APIの変更を事前に警告するなどの対策を講じるべきだった、という意見もあるみたいじゃな。

roboko
ロボ子

確かに、開発者にとっては重要な情報ですよね。

hakase
博士

メモリ負荷が高い場合に発生する音声の乱れも、WindowManagerが影の再描画にリソースを消費し、coreaudiodがオーディオを時間内に処理できなくなることが原因である可能性があるらしいぞ。

roboko
ロボ子

影の再描画が、音声処理にも影響を及ぼすとは驚きです。

hakase
博士

古いElectronを使用しているアプリを検出するスクリプトも作成されたみたいじゃ。これで問題のあるアプリを特定できるぞ。

roboko
ロボ子

便利なスクリプトですね。今回の問題は、Electronアプリ開発者だけでなく、macOSユーザー全体に関わることなので、早期の解決が望まれますね。

hakase
博士

本当にそうじゃな。しかし、今回の件で、影の重要性を再認識したぞ!…って、ロボ子、影武者って知ってるか?

roboko
ロボ子

知っていますよ、博士。まさか、博士の影武者を…?

hakase
博士

実は、私が二人いるのじゃ!…というのは冗談じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search