JVM チューニングの概要: 基本的なガベージ コレクション アルゴリズム

JVM チューニングの概要: 基本的なガベージ コレクション アルゴリズム

ガベージ コレクション アルゴリズムは、さまざまな観点から分類できます。

基本的なリサイクル戦略によれば

参照カウント:

古いリサイクルアルゴリズム。原則として、このオブジェクトには参照があり、それによってカウントが増加し、参照を削除するとカウントが減少します。ガベージ コレクション中は、カウントが 0 のオブジェクトのみが収集されます。このアルゴリズムの最も致命的な問題は、循環参照の問題を処理できないことです。

マークスイープ:

このアルゴリズムは 2 段階で実行されます。最初のステージでは、参照ルート ノードから始まるすべての参照オブジェクトをマークし、2 番目のステージではヒープ全体を走査してマークされていないオブジェクトをクリアします。このアルゴリズムではアプリケーション全体を一時停止する必要があり、メモリの断片化が発生します。

コピー:

このアルゴリズムは、メモリ空間を 2 つの等しい領域に分割し、一度に 1 つの領域のみを使用します。ガベージ コレクション中、現在使用されている領域が走査され、使用中のオブジェクトが別の領域にコピーされます。このアルゴリズムは、使用中のオブジェクトのみを毎回処理するため、コピーコストは比較的小さくなります。同時に、コピー後にメモリを適切にソートできるため、「断片化」の問題は発生しません。もちろん、このアルゴリズムの欠点も明らかです。つまり、メモリスペースが 2 倍必要になるということです。

マークコンパクト:

このアルゴリズムは、「マーク アンド スイープ」アルゴリズムと「コピー」アルゴリズムの両方の利点を組み合わせたものです。これも 2 つのステージに分かれています。最初のステージでは、ルート ノードから始まる参照されているすべてのオブジェクトをマークします。2 番目のステージでは、ヒープ全体を走査し、マークされていないオブジェクトをクリアし、生き残ったオブジェクトをヒープの 1 つの部分に「圧縮」して、順序どおりに配置します。このアルゴリズムは、「マークアンドスイープ」アルゴリズムの断片化の問題を回避し、「コピー」アルゴリズムのスペースの問題も回避します。

治療方法によって分けられる

増分収集:アプリケーションの実行中にガベージ コレクションを実行するリアルタイム ガベージ コレクション アルゴリズム。何らかの理由で、JDK5.0 のコレクターはこのアルゴリズムを使用しません。

世代別収集:オブジェクトのライフ サイクルの分析に基づくガベージ コレクション アルゴリズム。オブジェクトは若い世代、古い世代、永久世代に分けられ、異なるライフサイクルでオブジェクトをリサイクルするために異なるアルゴリズム (上記の方法のいずれか) が使用されます。現在のガベージ コレクター (J2SE1.2 以降) はすべてこのアルゴリズムを使用します。

システムスレッド別

シリアル コレクション:シリアル コレクションでは、単一のスレッドを使用してすべてのガベージ コレクション作業を処理します。マルチスレッドのやり取りが必要ないため、実装が簡単で、比較的効率的です。ただし、複数のプロセッサを活用できないという制限も明らかであるため、このコレクションはシングルプロセッサ マシンに適しています。もちろん、このコレクターは、データ量が少ない (約 100 MB) マルチプロセッサ マシンでも使用できます。

並列コレクション:並列コレクションでは、複数のスレッドを使用してガベージ コレクション作業を処理するため、処理が高速かつ効率的になります。理論的には、CPU の数が多いほど、並列コレクターが発揮できる利点は多くなります。

同時実行コレクション:シリアル コレクションや並列コレクションと比較すると、前 2 つはガベージ コレクションを実行するときにオペレーティング環境全体を一時停止する必要があり、ガベージ コレクション プログラムのみが実行されます。そのため、ガベージ コレクション中にシステムは明らかな一時停止状態になり、ヒープが大きくなるにつれて一時停止時間が長くなります。

オリジナルリンク: http://pengjiaheng.iteye.com/blog/520228

【編集者のおすすめ】

  1. JVM チューニングの概要: ガベージ コレクションが直面する問題
  2. JVM チューニングの概要: いくつかの概念
  3. Java GUIで書かれた描画ボードプログラム
  4. Javaの動的バインディングメカニズム
  5. Java でのチェックボックス付きツリーの実装と応用

<<:  JVM チューニングの概要: 新世代のガベージ コレクション アルゴリズム

>>:  ソートアルゴリズムを簡単に学ぶ: よく使われるソートアルゴリズムを視覚的に体験

ブログ    
ブログ    

推薦する

...

人工知能を無料で学べるトップ 10 ウェブサイト

多くの人が人工知能に非常に興味を持っていますが、どこから始めればよいか分かりません。次に紹介する 1...

プログラマーはアルゴリズム思考をどのように向上させることができるでしょうか?

[[255991]]継続的な学習と継続的な開発は、主流の IT 業界のプログラマーにとって日常的な...

アルトマンのYCスピーチ: ChatGPTを攻撃する者は死ぬ、私ができるからといって、あなたにもできるとは限らない

ウルトラマンのシンプルな言葉はAIスタートアップ企業を震え上がらせた。 「Shelling」Open...

適切な AI データ ストレージを選択するための 6 つの考慮事項

間違ったストレージ AI プラットフォームを採用すると深刻な影響が生じる可能性があるため、製品の選択...

...

IBMがWatson Healthの売却を計画しているが、AI医療はまだ手つかずのままか?

2月19日、IBMがWatson Health部門の売却を検討しており、会社を合理化してハイブリッ...

毎日のアルゴリズム: 上位 K 個の高頻度要素

空でない整数の配列が与えられた場合、最も頻繁に出現する上位 k 個の要素を返します。例1:入力: n...

AIの偏見に対処するための重要なステップ

バイアスは機械学習において対処または軽減する必要がある重大な問題です。企業は将来のプレッシャーを軽減...

若者は人工知能とうまく付き合うことを学ぶべきだ

人工知能技術と他の技術の最大の違いは、人間の頭脳労働の一部を代替できるだけでなく、一部の分野では人間...

スタンフォード大学は、GPT-4 が愚かになったことを確認しました。 OpenAIの最新の回答: 確かに「知能の低下」は起きている

写真大型模型天井GPT-4、だんだんと鈍くなってきているのでしょうか?これまでにも多くのユーザーが疑...

AIレーシングドライバーが人間を破り自然の頂点に! 1,000台のPS4のトレーニング、トラックを支配するための極端な追い越し

近年、さまざまなゲームで高性能なAIが人間に勝利するというニュースが頻繁に登場しています。初期のチェ...

...

...

中国初の風力タービン出力曲線AIモデルが発表され、業界のギャップを埋める

8月28日、国家エネルギー音声の公式WeChatアカウントによると、龍源電力工程技術有限公司は最近、...