JVM からの魂を問う質問: 「あなたは一体何のゴミなのですか?」

JVM からの魂を問う質問: 「あなたは一体何のゴミなのですか?」

[[273416]]

著者: iMononoke

ブログ: https://juejin.im/user/5c629a3051882562191755d8

GCとは何ですか?

GC は自動ストレージ管理メカニズムです。占有されているメモリが不要になった場合は、解放する必要があります。このストレージ リソース管理はガベージ コレクションと呼ばれます。

普段、机を掃除したり物を整理整頓したりするのと同じように、「手放す」という概念を見たり聞いたりしたことがある人は多いでしょう。使わなくなったものは他の人に寄付したり、リサイクル品としてリサイクルしたりすることができます。多くの場合、私たちはいくつかのアイテムを保管していますが、いつ使うかを考えるだけで何年も使用していないため、実際の「記憶」を占有しています。

「汚くて散らかっている」

[[273425]]

「きれい〜」

[[273426]]


まだ「生きて」いますか?

0-1 の世界では、いわゆる「ガベージ コレクション」とは、使用できなくなったオブジェクトによって占有されているメモリ領域を再利用し、必要なオブジェクトが使用できるようにこのメモリを解放することを指します。

では、JVM ではどのように分割されるのでしょうか?あるいは、どの物をリサイクルする必要があるでしょうか?

主な質問は、あなたはまだ「生きている」のかということです。

リサイクルするには、まずリサイクル可能かどうか、つまりその物体がまだ「生きている」かどうかを判断する必要があります。

判断には主に 2 つのアルゴリズムがあります。

  • 参照カウント
  • 到達可能性解析方法。

表を作って見てください〜

参照カウント

最大の問題は、オブジェクトが相互に参照する状況を解決するのが難しいことです。

一枚の写真は千の言葉に値する。

1. 相互引用

これは、2 つのオブジェクトが相互に参照する状況です。これ以外に、これら 2 つのオブジェクトへの参照はありませんが、参照カウントが 0 ではないため、参照カウンタは GC コレクターにそれらを再利用するように通知できません。

2 循環参照

これは循環参照の例です。これらを指す外部参照はありませんが、参照カウントは 0 ではないため、リサイクルできません。

たとえば、椅子の背もたれが壊れている場合、椅子の車輪はまだ使えますが、車輪を取り外して他の用途に使用することはできません。そのため、椅子の背もたれと車輪は互いに参照し合っていますが、それ自体以外には外部からの参照はありません。

この場合、「参照カウント方式」を使用して判断すると、まだリサイクルする必要はありませんが、実際には使用されなくなります。

そのため、主流の JVM ではメモリの管理に参照カウントは使用せず、代わりに次の到達可能性分析方法を使用します。次の図はその基本的な考え方を模式的に示したものです。

  • 到達可能性分析

図からわかるように、object5、object6、object7 には GCRoots オブジェクトへの参照チェーンがないため、すべてリサイクルされます。

上記の例によれば、壊れた椅子の背もたれと無傷の車輪は両方とも椅子オブジェクト (object5) に属していますが、椅子自体は使用されていないため、それらを参照する参照チェーンは存在しません。

GCルートになり得るオブジェクト

この大きな絵は見覚えがありますか?

もう一度分類して〜

  • 初回: オブジェクトの到達可能性分析後、GCRoots との接続がないことが判明し、初めてマークおよびフィルタリングされます。
  • 2 回目: オブジェクトが finalize() メソッドをオーバーライドしていないか、finalize() メソッドが仮想マシンによって呼び出されているため、実行する必要はないと判断されます。

<<:  Meituan Dianpingの分散データアクセス層ミドルウェアMTDDLの詳細な説明

>>:  10億規模のWebシステムの構築: スタンドアロンから分散クラスタまで

推薦する

B2Bプラットフォームで外国貿易製品を宣伝する方法

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

Bilibili、iQiyi 広告およびコンテンツ IP

11月17日、ビリビリ(以下、「ビリビリ」)とiQiyiは、2019年9月30日までの第3四半期の財...

Baidu プロモーション品質最適化ガイド

品質指標の出現は、検索エンジンの入札ランキングの発展における画期的な出来事です。百度であれ、Goog...

将来に影響を与える戦略的テクノロジートレンドトップ10

常に進化するテクノロジーの世界では、企業、政府、個人にとって、常に最先端を行くことが重要です。このダ...

リンクを使用してキーワードランキングを向上させる方法についての簡単な説明

リンクといえば、誰もが内部リンクと外部リンクを思い浮かべるでしょう。内部リンクと外部リンクはウェブサ...

一部の VPS CPU が非常に弱いのはなぜですか?考えられる状況を簡単に説明してください。

ホストキャットのサイトの記事の下に、XXのVPSのCPUがものすごく弱くて、スコアの実行やコンパイル...

オンライン教育企業はチャネル参入ビジネスモデルを競い合っており、収益化が難しい

編集者注/オンライン教育は、今年教育業界で最もホットなコンセプトです。ベンチャーキャピタルは将来のト...

企業はプロモーションに百科事典プラットフォームを効果的に活用するにはどうすればよいでしょうか?

インターネットの普及に伴い、企業によるマーケティングへのインターネットの利用も増加しています。多くの...

国内共同購入市場にマシュー効果が現れ、年内に利益の転換点を迎える可能性

昨年11月に株式を公開した共同購入のパイオニア、グルーポンが先日発表した財務報告によると、今年第1四...

VMware は通信事業者が 5G のパワーを最大限発揮できるよう支援します

VMware(NYSE:VMW)は本日、Mobile World Congress 2023 にお...

画像imgタグのalt属性とtitle属性の評価実験

SEO の最適化は時間がかかり、細心の注意を要するプロセスです。細部をきちんとやれば水を得た魚のよう...

virmach-Windows VPS 60% オフ/1g メモリ/15gssd/1t トラフィック/年間支払い $29.4

Virmach の安価な Windows VPS は、価格面で業界をはるかに上回っていますか? vi...

Haoyaoshi.com のために戦う: 劉強東は九州通から「分離」したい

かつては医薬品電子商取引の分野で強力な2社の「結婚」と見られていたものが、実は「別離」劇であったこと...

ハイブリッド クラウドとは何ですか? また、どのように機能しますか?

[[205205​​]]クラウド コンピューティングは、IT のほぼすべてを説明するために使用できる...

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

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