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システムの構築: スタンドアロンから分散クラスタまで

推薦する

Omdia: ハイブリッドおよびマルチクラウドの市場規模は2026年までに380億ドルを超える

最近、国際的に権威のある研究機関であるOmdiaは「Omdia Universe:ハイブリッドおよび...

コミュニティの次の形は、新しい小売会員システムです。

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

ディメンションデータ、2019年のテクノロジートレンド予測を発表

ディメンションデータの最新レポートは、顧客体験、サイバーセキュリティ、デジタル開発、将来の技術動向に...

A5 ソースコード: 2013 年 3 月に推奨された無料の Web サイト構築ソースコード

A5 Source Code は中国のウェブマスターにサービスを提供することに重点を置いており、大量...

知識の支払い、死

5大テレビ局の大晦日コンサートや、大いに期待されていたものの残念ながら失敗に終わったB局のガラなど、...

iPaaS: クラウド アプリケーション展開の聖杯?

コンポーネント化されたアプリケーションを展開するときは常に、それらのコンポーネントが互いを検出し、ス...

Kamatera レビュー: Kamatera 香港 VPS 体験の簡単な説明

以前、20年以上の歴史を持つKamateraを紹介しました。「Kamatera:香港/イスラエルに1...

留学ウェブサイト編集経験

私はこの業界に4年以上いるので、あまりプロフェッショナルとは言えません。しかし、教育ポータルの留学チ...

中小機械メーカーのインターネットマーケティングのジレンマ

実は、機械業界と医療業界の SEO のジレンマには多くの類似点がありますが、私はこれまでずっと医療業...

あなたについて話しているんです! SEO のためのフレンドリー リンクの交換に関するよくある誤解がいくつかあります。

フレンドリー リンクは、ウェブサイトの最適化において非常に重要な部分です。SEO の日常業務は、すべ...

大晦日に、皆様良いお年をお迎えください。

あけましておめでとう! Host Cat をまだ閲覧している友人の皆さん、そしてこれまでも、そしてこ...

regolithmedia 月額 5 ドル 256 メモリ/KVM/G ポート/ダラス

REGOLITH MEDIA は英国と米国の両方に登録された会社です。現在は KVM ベースの VP...

4種類の顧客からのSEO注文は「失う」べきではない 4種類の顧客は「受け入れる」べきではない(I)

私はこの業界に2年間います。この分野ですでに専門家であるとは言えませんが、いくつかの側面ではまだ独自...

主流の人気のインターネット製品を活用して、自社製品の価値を探る

ほぼすべての伝統的な企業が「オンライン化」を開始しており、これは長い間の傾向です。その理由は単純です...