IEリロード時のFlexメモリリークはSkype 4.0が原因

Flexアプリをブラウザ内で実行していると、ブラウザのリロード時にFlexアプリが使用したメモリが解放されないことがあります。しかし発生する環境が特定できていませんでした(というか調査せず放置してましたw)。

で、昨日ググってみたらこちらのエントリで原因が紹介されていました。素敵!

Skype 4.0に付属するIE用のアドオンが原因のようです。僕の環境(WinXP + IE8 + Flash Player10 + Skype4.0.0.226)でも試してみましたが、IEのアドオン設定画面でSkype add-onをオフにしたら、ばっちりメモリが解放されるようになりました。

これって直感的にはSkype4側の問題に思えるんですがどうでしょうねぇ。リロード時にアドオンが表示中のコンテンツへの参照を掴んだまま離さないとか…。まだSkype4.0をインストールしてるユーザって結構多いですから、原因はともかく、バグとしては深刻な気がいたします。

※2月25日にリリースされたSkype4.2でテストしてみたところ、メモリが解放されない問題は起こりませんでした。Skype 4.2のリリースノート(PDF)には、IEプラグインがフリーズする問題を直したというようなことが記述されていますが、明確にこのメモリの問題に言及しているものは見当たりません。問題が明示的に修正されたのか、たまたま改善したのかは不明です。