フルGCとマイナーGCの違いが分からない

フルGCとマイナーGCの違いが分からない

[[317199]]

この記事では、主に JVM のさまざまな GC を紹介し、誰もがこれらの概念を明確に理解できるようにします。

マイナー GC、ヤング GC、フル GC、古い GC、メジャー GC、混合 GC など、多くの GC 用語を見たことがあるかもしれません。

概念が多すぎて、考えるのは頭が痛くなります。これらすべての GC は何を指しているのでしょうか?

まず、Zhihu での R の回答を引用します。

HotSpot VM の実装に関しては、実際には GC の正確な分類が 2 つあります。

部分GC: GCヒープ全体を収集しないモード

  • Young GC: Young Gen のみを収集する GC。Young GC はマイナー GC とも呼ばれます。
  • 古い GC: 古い世代のみを収集する GC。このモードでは、ガベージ コレクター CMS の同時コレクションのみが実行されます。
  • 混合 GC: Young Gen 全体と Old Gen の一部を収集する GC。このモードを持つのはガベージ コレクター G1 のみです。

フルGC: 新しい世代、古い世代、永久世代(JDK 1.8以降では、永久世代は削除され、メタスペースに置き換えられます)、およびその他のすべての部分を含むヒープ全体を収集します。

次に、各 GC を見てみましょう。

(1)マイナーGC / ヤングGC

まずはマイナーGC/ヤングGCについて見てみましょう。ご存知のとおり、新世代(Young Gen)は若い世代とも呼ばれます。これら 2 つの用語は同義です。そして、若い世代の Eden メモリ領域がいっぱいになった後、実際には若い世代の GC、または新しい世代の GC をトリガーする必要があります。

現時点では、新世代の GC は、実際にはマイナー GC またはヤング GC と呼ばれています。これら 2 つの用語は誰もが理解できると思います。簡単に言えば、これは新世代の GC 専用です。

(2)旧GC

いわゆる旧世代の GC は、文字通りの意味からこれがいわゆる旧世代の GC であると理解できるため、Old GC と呼ぶ方が適切です。

しかし、ここでは旧世代の GC をフル GC と呼んでいますが、これは実際に可能です。それは文字通りの言い方を少し変えただけです。

旧世代の GC の意味をより正確に表現するために、旧世代の GC を Old GC と呼ぶことができます。

(3)フルGC

実は、Full GC にはもっと適切な用語があり、Full GC は新世代、旧世代、永久世代のメモリ空間全体のガベージ コレクションを指すため、Full GC と呼ばれています。

Fullはその名の通り全体を意味するため、JVM全体でガベージコレクションを実行し、各メモリ領域のガベージを収集することになります。

(4)メジャーGC

また、「メジャー GC」という用語もありますが、これは実際にはほとんど使用されず、非常に混同しやすい概念でもあります。

メジャー GC は旧世代の GC だと考えてオールド GC と同一視する人もいれば、メジャー GC は JVM のメモリ領域全体に対する GC だと考えてフル GC と同一視する人もいます。

したがって、この混同されやすい概念については、今後はあまり言及しないことをお勧めします。誰かがメジャー GC の概念について話しているのを聞いたら、その人が古い GC について言及しているのか、それともフル GC について言及しているのかを明確に尋ねることができます。

(5)混合GC

混合 GC は G1 の独自の概念です。実際、簡単に言うと、G1 では、古い世代がヒープ メモリの 45% を占有すると (-XX:InitiatingHeapOccupancyPercent: マーキング サイクルをトリガーするための Java ヒープ占有率しきい値を設定します。デフォルト値は 45% です。ここでの Java ヒープ パーセンテージは、old + humongous を含む non_young_capacity_bytes を指します)、Mixed GC がトリガーされ、若い世代と古い世代の両方がリサイクルされることを意味します。混合 GC は G1 にのみ表示されます。

参照する

https://tech.meituan.com/2016/09/23/g1.html

https://www.zhihu.com/question/41922036/answer/93079526

「Java 仮想マシンの徹底理解: JVM の高度な機能とベスト プラクティス (第 3 版)」

<<:  クラウド ネットワーキングとクラウド コンピューティングの違いは何ですか?

>>:  IDCクラウドコンピューティングレポート:アリババクラウドは世界トップ3にランクイン、成長率はアマゾンとマイクロソフトを上回る

推薦する

クラウドセキュリティの責任を共有するということは、多くの場合、誰も責任を負わないことを意味する。

責任が明確でないグループの場合、「共有」または「共同」責任は、全員が他の誰かが問題を解決していると思...

フォルクスワーゲン、自動車の「業界クラウド」を推進

業界クラウドは、垂直業界向けにカスタマイズされたサービスを求める IT リーダーにとって、ますます頼...

ウェブサイトの降格のさまざまな形式と解決策の体系的な説明

ウェブサイトを構築していると、権限が減ってしまうさまざまな状況に遭遇することが多く、これをKステーシ...

本格的な相互接続の到来が加速しており、3つの主要な技術トレンドは注目に値する

テンセント副社長、クラウド・スマート産業グループCOO、テンセントクラウド社長の邱月鵬氏は11月3日...

Godaddy Deluxe の無制限ホスティングが 85% オフ + 無料ドメイン名もゲット、前例のないサービスです!

Godaddy の仮想ホスティングでこれまで見た中で最高の割引はいくらですか? 50%オフ?それは本...

外部リンクを最適化して最大限に活用する方法

外部リンクは、ウェブマスターの間で日常的に議論される話題です。外部リンクを取得する方法であろうと、外...

Tujia.comの急速な資金調達の謎を解明:開発が最優先

Tujia.com の急速な発展から私たちが学んだのは、ウェブサイトがいかに飛躍するかではなく、ウェ...

私はロックダウン中のビジネス変革について起業家と話すためにここにいます

当時の状況は、起業家に自社の見通しと将来の発展について包括的かつ深く考えることを迫りました。今日は、...

HostGa の「言葉では言い表せない」ドメイン名登録は 4.95 ドル (何年でも登録可能)

HostGa は「言葉では言い表せない」最新のプロモーション情報をリリースしました: COM/.NE...

PPCのあらゆる側面を共有し、PPCプロモーションを弁証法的に考察する

ウェブマスターは皆、SEO と PPC が SEM を構成することを知っています。ほとんどのウェブマ...

Ele.me が Dianping を選んだ理由は何ですか?

Dianpingにとって、より大きなプラットフォームを構築し、その領域を加速させるという点では、まだ...

uuuvpsはどうですか?プロモーション20M帯域幅香港VPSの簡単な評価

Sanyouyun (uuuvps はどうですか、uuuvps の香港 VPS はどうですか?) こ...

HarmonyOS 分散型親子教育

[[412544]]詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したH...

Shardhost - 月額 7 ドル 1G KVM | 2G OpenVZ

Shardhost は、2011 年 6 月に英国で登録された小規模な VPS プロバイダーです (...