ホームページ  >  に質問  >  本文

javascript - jsのメモリリークの問題

リーリー

最近、面接でこのような質問に遭遇しました。この段落にメモリ リークはありますか?もしある場合、その理由とメモリ リークを解消する方法を教えていただけますか?

黄舟黄舟2680日前654

全員に返信(4)返信します

  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:44:35

    メモリリーク簡単に言えば、ブラウザのプロセスが終了するまで、割り当てられたメモリを使用したりリサイクルしたりすることはできません。

    循環参照問題の場合は、参照を直接削除し、test=null,因为jsガベージコレクションメカニズムを定期的に実行するように設定し、使用されなくなった変数を見つけて、それらによって占有されているメモリを解放してください。ガベージコレクション

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:44:35

    原理は以下の図の通りです。 テストは dom 要素を参照し、その dom 要素にイベントハンドラーを追加します。 ただし、イベント処理関数は外部スコープ内のテストを参照します。したがって、次のようになります。循環参照になります。

    実際には、メモリ リークはユーザーではなくテストによって発生し、外部テストへの参照をクリアすると、この循環参照が破壊される可能性があります。

    実際、マークスイープ アルゴリズムが使用されているため、これらは最新のブラウザでは問題になりません。古いブラウザでは、ガベージ コレクション アルゴリズムは参照によるメモリ リークのみを引き起こします。つまり、循環参照によってオブジェクトが作成されます。利用できず、ゴミとしてリサイクルすることはできません。

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:44:35

    メモリリークとは何ですか?

    これにより実行エラーが発生します。 。 。 。 。 。

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:44:35

    間違いなく、CVTE の面接の質問に含まれています。 user.name への参照はクリック イベントに保持されるため、依然としてリークされます。
    問題を解決する方法としては、上記のように直接参照することしか思いつきません

    返事
    0
  • キャンセル返事