4

Windows では、アプリケーションが最小化されると、OS はページ ファイル内にデータを配置することにより、アプリケーションに関連付けられたメモリを解放します。他のガベージ コレクションも実行される場合があります。

Internet Explorer で JavaScript アプリを実行している場合、メモリ使用量が 60 MB から始まる場合、ブラウザを最小化するとメモリが 17 MB に減少します。最大化すると、最大40MBに戻ります

20MB の増加。

私のアプリケーションは JavaScript を多用しており、IE が参照されなくなったオブジェクトのガベージ コレクションを強制していると思われます。

JavaScript (IE のみ) を介して、次の方法でガベージ コレクションを強制できます。

CollectGarbage()

したがって、このメソッドを (画面を最小化せずに) 呼び出すと、1 メガまたは 2 メガしか回収できません。

これをイベント キュー経由で呼び出すと、次のようになります。

setTimeout(CollectGarbage, 1000)

私は約3メガを回収します

私のアプリケーションは終日実行するように設計されているため、メモリ管理は非常に重要です。

IE のメモリを手動で縮小するのと同じ程度に強制的にクリーンアップする方法を知っている人はいますか?

プログラムでブラウザを最小化するという提案は、嘲笑されるでしょう!

乾杯 :)

4

1 に答える 1

1

キーワードを使用しdeleteて変数/プロパティを定義解除し、メモリを節約します。詳細はこちら

ただし、オブジェクト プロパティへの参照を失うだけでよい場合は、それを に設定してnull、次のコレクションを待ちます。

クロージャとラムダ関数の使用には注意してください。これらは伝統的にメモリを大量に消費し、リークの原因となってきました。Internet Explorer のリーク パターンの理解と解決を参照してください。

于 2009-08-26T14:45:12.083 に答える