jsゴミ回収メカニズム

899 ワード

javascriptは自動ごみ収集メカニズムを備えたプログラミング言語で、開発者はメモリの割り当てや回収に関心を持たなくてもいいです.このようなゴミ収集メカニズムの原理は、もう使い続けない変数を探し出し、その占用メモリを解放することです.
ごみ収集器はどの変数が役に立つかを追跡しなければなりません.どの変数が役に立たないのか、もう役に立たない変数にマークを付けて、後でその占用メモリを回収します.具体的にブラウザに実現するには、通常二つの戦略があります.
  • マークはjavascriptの中で最もよく使われているごみ収集方式をクリアすることです.変数が環境に入ると「環境に入る」と表記されますが、変数が環境から離れると「環境から離れる」と表記されます.ごみ収集器が動作すると、メモリに格納されている変数にすべてのタグを付けて、環境の変数や環境の変数によって参照されている変数のタグを削除します.また、マークされた変数は、環境内の変数がこれらの変数にアクセスできなくなっているため、削除を準備する変数と見なされます.
  • 参照カウント
  • 参照カウントとは、各値が参照される回数を追跡することを意味します.変数を宣言して参照型を変数に割り当てた場合、この値の参照回数は1回です.同じ変数が他の変数に追加されている場合、その値の参照回数は1回加算されます.この値の参照回数が0の場合、この値にアクセスできなくなり、空間を回収することができるということです.このようなゴミ収集戦略はあまり見られません.今のところ、javascriptエンジンはこのようなアルゴリズムを使うことができません.しかしながら、IEで原音Javascriptオブジェクトにアクセスすると、このアルゴリズムに問題が発生する可能性がある.
    変数の参照を解除することは、循環参照現象を除去するだけでなく、ゴミ収集にも効果があります.有効なメモリの回収を確保するためには、使用しないグローバルオブジェクト、全集オブジェクト属性、循環参照変数の参照を適時に解除してください.