フル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にランクイン、成長率はアマゾンとマイクロソフトを上回る

推薦する

コンテナ化技術: 最新のアプリケーションの展開と管理

クラウド コンピューティングと最新のアプリケーション開発の急速な発展に伴い、コンテナ化テクノロジはア...

お前はそのまま進み続けろ、俺たちはただ待つだけだ!

昨日の午後5時半から、誰だか分からないバカがホストモ​​デムにDDoS攻撃をひっきりなしに仕掛けてき...

SAP、2022年第2四半期の業績を発表

• クラウド収益は34%と24%(固定為替レート)増加し、最大の収益源となった。 • 現在のクラウド...

raksmart: 米国のクラスター サーバー、無制限のトラフィック サーバー (1G~10Gbps の帯域幅)、わずか 197 ドルから

raksmartは8月から今月15日まで、西海岸(サンノゼ)の独立データセンターで、253IPクラス...

レンタカー業界でビデオマーケティングを実施する方法

ビデオ マーケティングには長い歴史があります。テレビ コマーシャルからオンライン ビデオまで、すべて...

クラウドコンピューティングベンダーの生死の境目:この賭けは大手企業だけが行う

先週、2018年杭州雲奇会議が開催されました。 Alibaba Cloud は、杭州がどのようにクラ...

Lefeng.comの親会社は、シリーズBの資金調達で4000万ドルを調達したと発表した。

4月26日午後、東方鳳星グループは、Bラウンドで中国国際金融公社(CICC)と中国ブロードバンド基金...

アプリプロモーションのための200以上のチャネルを見つける方法!

以前、「新しいアプリをプロモーションする方法」という記事を書きましたが、その中でアプリのプロモーショ...

ウェブサイトのSEO最適化が成功して収益を上げたあと、ウェブマスターが次にすべきことについての簡単な議論

最近、あるウェブマスターとチャットをしました。彼のウェブサイトの1つは、約3年間オンラインになってい...

Baidu SEOとGoogleランキングの違い

最近とても忙しくて、書く時間があまりありません。少し前、ウェブサイトが開けなくなることがよくあり、そ...

クラウドネイティブ開発でこのような問題点に遭遇したことはありませんか?

背景クラウドネイティブ時代において、国内外の多くのクラウドベンダーが強力な技術的配当をリリースしてい...

意味のないコンテンツと散りばめられたキーワード、そして失われた魂を持つウェブサイトは、長くは続かないだろう

「SEO会社の声明や事例を信用しないでください。不適切なSEOはサイトにリスクをもたらす可能性があり...

記事が掲載されなかった理由は何ですか?

記事の掲載は、すべての SEO 担当者が懸念すべき問題です。掲載される記事の数によって、ウェブサイト...

フレンドリーリンクプラットフォームを使用して「壁を通り抜けて光を引き寄せる」ことでネットワークの静脈を改善します

大手ウェブマスターなら誰でも、新しいサイトでも古いサイトでも、友好的なリンクを交換する必要があること...