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

推薦する

BGPTO - 69 ドル シンガポール/香港 2xL5630/24g メモリ/2x1T ハードディスク/無制限トラフィック

- サーバー ブランド BGP.TO では、シンガポールと香港に直接接続できる独立したサーバーを割引...

SEO初心者はウェブサイトの内部リンクの構築をどのように理解すべきか

SEO に関しては、最近多くの中小規模のウェブマスターが困惑しています。グリーンラディッシュアルゴリ...

クラウドコンピューティングに関するコメント: 技術的な観点ではなく、ビジネスの観点から見てみましょう

最近、何人かの上司とクラウド コンピューティングとテクノロジーについて話し合い、いくつかのアイデアが...

クラウドネットワークとは何ですか?

クラウドの未来は明るい。 2024 年までに、IT 支出の 45% 以上が、レガシー ネットワークの...

微博マーケティングの4大ブランド価値

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスデジタル時代の重要なマー...

SEO 最適化のアイデアがない場合はどうすればよいですか?これらのテーブルが必要になるかもしれません。 - 並べてください。

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...

HDFS 分散ストレージにおける NameNode と DataNode の違いは何ですか?

インターネットが飛躍的に発展し続けるにつれ、データは徐々に技術と経済の発展の中核となってきました。イ...

実際、私たちはまだ百度について十分には知らない。

Baidu のアルゴリズムやメジャーアップデートがリリースされると、SEO 担当者のウェブサイトのデ...

SEOの基本: 高品質なウェブページタイトルの書き方

Web ページのタイトルはどのように記述すればよいでしょうか? 優れたタイトルとはどのようなものでし...

検索エンジンは人々を引き付ける役割を担い、ウェブサイトは人々を維持する役割を担っている。

検索エンジンはトラフィック転送ステーションです。検索エンジンは逆トラフィックソースに過ぎません。SE...

エッジコンピューティングが仕事を楽にする 5 つの方法

エッジ コンピューティングは大きなビジネスであり、今後さらに発展する可能性があります。実際、先週、マ...

Kafka はどのようにして 1 秒間に 1,500 万件のメッセージを処理するのでしょうか?

[[245749]] [51CTO.com からのオリジナル記事] Apache Kafka は、N...

2022年のクラウド大手の「エコ革命」第一歩:リベートの削減、転売の抑制、発言権の競争

「アリババ、テンセント、ファーウェイクラウドのエコ政策は今年、いずれも大きな変化を遂げるだろう。」最...

2014 年のウェブサイト SEO 開発の 5 つの主な方向性

電子商取引業界にとって、2014 年は激動の生死を分ける年となることが予想されます。電子商取引大手の...