JVM ガベージ コレクション アルゴリズム: 1. 「Mark-Clear」アルゴリズム; まず、リサイクルする必要があるすべてのオブジェクトをマークし、マークが完了した後、マークされたすべてのオブジェクトを均一にリサイクルします。 2. アルゴリズムをコピーします。メモリを 2 つの同じサイズのブロックに分割し、一度にそのうちの 1 つだけを使用します。 3. 「Mark-Organization」アルゴリズム; 4. 世代別収集アルゴリズム。
JVM ガベージ コレクション アルゴリズム
2 つの概念:
新世代:ライフサイクルの短いオブジェクトが保管される領(lǐng)域。 舊世代: ライフサイクルの長(zhǎng)いオブジェクトが保存される領(lǐng)域。
1. マーククリア アルゴリズム
実行手順:マーキング: メモリ領(lǐng)域を走査し、リサイクルする必要があるオブジェクトをマークします。
- クリア: メモリを再度たどり、マークされたメモリをリサイクルします。
- #イラスト:
スペースの問(wèn)題: 大量のメモリ フラグメントが生成されやすく、より大きなメモリが必要な場(chǎng)合、要件を満たすピースが見(jiàn)つからないため、GC を再度開(kāi)始する必要があります。
- #2. コピー アルゴリズム
メモリを 2 つの同じサイズのブロックに分割し、そのうちの 1 つだけを使用します。毎回の作品。ブロックが使い果たされてGCが発生すると、ブロック內(nèi)に殘ったオブジェクトが別の領(lǐng)域にコピーされ、不要なメモリが一気にクリアされます。次回 GC がトリガーされると、そのブロックの殘っている部分がこのブロックにコピーされ、その後そのブロックが消去され、このサイクルが繰り返されます。 #図:
##利點(diǎn)
#マーククリーン アルゴリズムと比較して、メモリの斷片化の問(wèn)題を解決します。
より効率的です (メモリをクリーンアップするときに、最初と最後のアドレスを覚えて、一度に消去します)。
欠點(diǎn):
- メモリ使用率は高くなく、一度に使用できるメモリの半分だけです。
# 研究によると、新世代のほとんどのオブジェクトは「生きて死ぬ」、つまりライフ サイクルが非常に短く、オブジェクトの壽命が長(zhǎng)くなるほど、リサイクルが難しくなります。 GC が発生すると、再利用する必要があるオブジェクトが多く、生き殘るオブジェクトはほとんどないため、別のメモリに移動(dòng)する必要があるオブジェクトはほとんどないため、メモリ空間を 1:1 に分割する必要はありません。代わりに、新世代全體が 8:1:1 の比率で 3 つのエリアに分割され、最大のエリアはエデン エリアと呼ばれ、2 つの小さなエリアはそれぞれ To Survivor および From Survivor と呼ばれます。
最初の GC では、Eden の生き殘ったオブジェクトのみを To にコピーする必要があります。その後、エデン地域全體がリサイクルされます。再度GCが発生した場(chǎng)合は、殘っているEdenとToをFromにコピーし、この作業(yè)を繰り返します。このようにして、各新しい世代で使用可能なメモリは新しい世代全體の 90% を占め、メモリ使用率が大幅に向上します。 [関連する推奨事項(xiàng):- Java ビデオ チュートリアル
- ]
古い世代: 複數(shù)回のリサイクル試行 (デフォルトは 15 回) に耐えたオブジェクトを新しい世代に保管します。
3. マーク – 照合アルゴリズム以前のコピー アルゴリズムは、オブジェクトの生存率が比較的高い場(chǎng)合にコピーを続けるためです。 . やって來(lái)て過(guò)去をコピーすることは無(wú)意味であり、時(shí)間の無(wú)駄です。そこで、高齢者向けに「マーキングソート」アルゴリズムが提案された。
実行ステップ: マーキング: リサイクルする必要があるものにマークを付ける
組織: 殘っているオブジェクトを移動(dòng)させますメモリへ ファイルの一端を移動(dòng)し、未使用のメモリを直接クリーンアップします。
#図:
- ##4. 世代別収集アルゴリズム
現(xiàn)在、ほとんどの商用仮想マシンはこの世代別コレクション アルゴリズムを使用しています。このアルゴリズムには新しい內(nèi)容はありません。オブジェクトの生存時(shí)間に基づいてメモリを新しい世代と古い世代に分割するだけです。このようにして、対応するアルゴリズムさまざまな分野に採(cǎi)用できます。例: MinorGC と FullGC の違い MinorGC: 新しい世代で発生するガベージ コレクション。新しい世代では、MinorGC が非常に頻繁で、リサイクル速度が比較的速く、毎回のリサイクル量も多くなります。 プログラミング関連の知識(shí)について詳しくは、プログラミング ビデオをご覧ください。 !
FullGC: 古い世代で発生するガベージ コレクション (MajorGC とも呼ばれます) は比較的遅く、MinorGc よりも約 10 倍遅くなります。 FullGC には通常、複數(shù)の MinorGC が伴います。
以上がJVM ガベージ コレクション アルゴリズムとは何ですか?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover
寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)