ホームページ  >  記事  >  ウェブフロントエンド  >  jsガベージコレクション機構とは何ですか? jsガベージコレクション機構の概要

jsガベージコレクション機構とは何ですか? jsガベージコレクション機構の概要

不言
不言オリジナル
2018-08-15 17:40:444475ブラウズ

この記事の内容は、JS ガベージ コレクション メカニズムとは何ですか? 必要な方の参考になれば幸いです。

JS には自動ガベージ コレクション メカニズムがあります。ガベージコレクタは一定の間隔で定期的に実行されます。

Js の一般的なガベージ コレクション メソッド: マークのクリアと参照カウント。

1. マーククリア方法:

動作原理: 変数が環境に入るとき、その変数を「環境に入る」としてマークします。変数が環境から離れると、「環境から離れる」とマークされます。 「環境から離れる」とマークされたメモリはリサイクルされます。

ワークフロー:

  • ガベージコレクターは、動作中にメモリに保存されているすべての変数をマークします

  • 環境内の変数と環境内の変数によって参照される変数を削除します

  • マークされた変数は削除される変数とみなされます。

  • ガベージ コレクターはメモリ クリーニング作業を完了し、それらのマークされた値を破棄し、メモリ領域を占有している値をリサイクルします。

2. 参照カウント方法:

動作原理: 各値が参照された回数を追跡および記録します。

ワークフロー:

  • 変数を宣言し、その変数に参照型の値を割り当てます。この参照型の値の参照の数は 1 つです。

  • 同じ値が別の 1 つの変数に割り当てられます。この参照型値の参照番号は 1 増加します

  • この参照型値を含む変数が別の値に割り当てられると、この参照型値の参照番号は 1 減少します

  • 参照数が0になると、この値にアクセスする方法がなくなったことを意味します。

  • 次回ガベージコレクターが実行されると、参照カウントが 0 の値によって占有されていたメモリが解放されます。ただし、サイクル参照時にメモリが解放されないため、メモリリークが発生します

  • IEのBOMとDOMは実現されているため、COMオブジェクトで使用されるガベージコレクションメカニズムは参照技術戦略です。したがって、循環参照の問題が発生します。

解決策: JS オブジェクトと DOM 間のリンクを手動で切断し、値を null に割り当てます。 IE9 は DOM と BOM を実際の JS オブジェクトに変換するため、この問題は回避されます。

関連おすすめ:

PHPのガベージコレクションの仕組み 資源となるゴミとは ガベージコレクション リサイクルできないゴミ

PHP5.3のガベージコレクションの仕組みについて

以上がjsガベージコレクション機構とは何ですか? jsガベージコレクション機構の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。