インターフェイスの不可欠な部分としてフレームを使用するサイトで動作する GreaseMonkey スクリプトがあります。このスクリプトはふるいのようにメモリ リークを起こします。これは、フレームの 1 つで addEventListener を使用したことが原因だと思います。簡単に言えば、さまざまなイベント リスナーをアタッチしてから、フレームをリロードし、イベント リスナーをアタッチしてから、フレームをリロードします。このフレームまたは他のフレーム内のさまざまな要素を操作すると、数百回または場合によっては数千回の反復が繰り返されます。それの終わりまでに、Firefox はメモリが 300M から 2G にまで増えました (または、そこに到達する前にクラッシュします)。
ページ全体をリロードすると、FireFox のガベージ コレクション ルーチンが開始され、孤立したイベント ハンドラーからすべてのメモリが回復されることをどこかで読みました。 300M に戻りました。残念ながら、これはサイトの別のフレーム (非常に人気のあるチャット ウィンドウ) を壊します。
ページ全体を強制的に更新せずにメモリを適切に解放するために他にできることはありますか?
(現在GM1.5とFF17を使用していますが、GM0.8/FF4くらいから問題が発生しています。)