macOS 12 Montereyのアクセシビリティ機能によるメモリリークは、マウスカーソルが変化するほぼ全てのアプリで発生するようです。詳細は以下から。
Appleが日本時間2021年10月26日より公開を開始した「macOS 12 Monterey」ではマウスポインタのカラーや大きさを変えるアクセシビリティ機能と競合するNSCursorを利用していたFirefoxでメモリが解放されず圧縮メモリ容量が数十GBになるメモリリークが発生すると以前お伝えしましたが、
その後、頂いたいくつかのコメントによると、このアクセシビリティ機能によるメモリリークはMozilla Firefox固有のものでなく、マウスカーソル(ポインタ)の形が変化する全てのアプリで発生するそうです。
検証
例えば、Visual Studio CodeやSublime Text、CotEditorなどのエディタ系アプリはテキスト上ではI-Beam(iBeam)カーソル、サイドバーエリアではHand(pointingHand)カーソル、その他のエリアでは通常の矢印(arrow)カーソルになりますが、macOS 12.0.1 Montereyではこの1サイクルだけで数十MB ~ 100MB程度のメモリを消費します。
実際に検証してみましたが、アクセシビリティ機能のマウスカーソルに関する機能(ポインタのカラーとサイズ)を有効にした状態でVScodeのツールバー → テキストエリア → サイドバーの順にマウスカーソルを移していくだけで、以下の通り約5分で1GBのメモリが使用(リーク)されました。
エンジニアの方から頂いたコメントによると、この不具合は10月にリリースされたmacOS 12.0 Monterey RCで確認されMozillaはAppleにこの不具合を報告したものの、修正されないまま正式にリリースされてしまったそうで、本日リリースされた「macOS 12.1 Monterey beta 3 Build 21C5039b」でようやく修正が入ったようなので、macOS 12.1がリリースされるまではマウスカーソルに関するアクセシビリティ機能[1, 2]はOFFにしておいた方が良さそうです。
コメント