ようやくメモリリーク問題解決 [訂正]
ようやく IE6 でメモリリークが発生する問題が解決しました。結局 innerHTML ではなく、className を変更することで対応しました。
同じ内容を報告している方(詳細[英語])もいますし、CDHtmlDialog のソースも眺めてみましたが、SetElementHtml を使った場合も最終的には、put_innerHTML API を呼び出しているので、put_innerHTML 内部に問題があるのでしょう。多分。これ以上深追いしても仕方がないので innerHTML を使うのは諦めました。
解決にかなりの時間を要してしまいましたが、一応安心して常駐できる目処はたちました。基本的な動作確認はできたので、色々整理して今晩 R14 をリリースしたいと思います。
— 訂正 2008/4/12 16:30 —
調査を続けたところ、背景画像がからむ部分を変更するたびに微妙にメモリリークが発生する事が判明しました。背景画像が全くなければ大丈夫!? な気もしますが、どうしたものか。現在、更新頻度をシステム上の最小周期に設定した加速試験を実施中。右肩上がりで増え続けるプライベートバイトヒストリーを眺めながら絶望的な気分に orz
以前よりメモリリークのペースは格段に遅くなりましたが、それでもかなり漏れています。IE6 はすっかり嫌いになりました。今日中に改善の目処が立てば良いのですが…。
— 追記 2008/4/12 18:40 —
データが更新されていない場合にデータを再設定する処理を省くようにしたところ、実用上問題がない(と思われる)ところまでメモリリークを抑える事ができるようになりました。今回の件でかなり無駄な処理を省くことができ、結果的には常駐時の負荷が削減できました。ということで IE7 環境にもメリットがありそうです。
1件の返信
[…] CrystalDiskInfo 1.0.0 RC13 ようやくメモリリーク問題解決 4 月 […]