JVM - グラフィック論文
HTTPS:// www.jianshu.com/p/1353d0a64346
1992年3月に、あるずっと前にロング、、、NB轟音コーヒー学校は、その名前が、そこに生まれたされ
JAVA
、平均的な学生は心を失うことになる、学校の規則や規制が非常に強力なされ、とどまることができる人のような唯一のトップの学生、ありません私は男が推測「あなた。」
キャラクター登場リスト
フルネーム | エイリアス | 略語 |
---|---|---|
学校 | Java仮想マシン | JVM |
教室 | ヒープ・スペース | ヒープ |
教師 | ガベージコレクタ | マイナーGC /メジャーGC |
学生 | データ | オブジェクト |
学校の計画
一般的な名前 | アクセス権 | 略語 |
---|---|---|
エデン教室 | 新生児 | エデン |
Survivor0 / 1教室 | 栄誉 | S0 、S1 |
Tenured/Old Generation教室 | トップ学生専用 | 古い |
Metaspace教室 | 生徒、校長の特別な | メタスペース |
ようこそ新入生の学校の黒板
-
この新生児は、ジョブ・ログを受け取ります。備考:( 学生は宿題はすべてのカバー章一度行って行っていたかどうかを記録)。
-
自身新生児会場へ次
Eden
の教室。 -
Minor GC
教師のチェックは教師を標識することはありません、何の宿題を持っていないしていきます。 -
独自の会場に、トップの学生をラベル付けされていない
S0
か、S1
教室、ノート:( この二つは、教室が空になっている必要があり、学生が直接マイナーGCによって入力されたアレンジを担当した空の教室空の教室の教師を入力することはできません)、会場の終了追放後のEden
教室貧しい学生の。 -
どちらの教室の
Minor GC
先生は思想教育を行い、その後追放するために学校の後に滞在する宿題の学生をしていない、座ってするために、名前の教師の後、教室内の別の会場の仕事をし、チェックを継続していきます。 -
Minor GC
ジョブごとに一回教師のチェック、プラスは、あなたにポイントを与えるスコアが指定されたスコアに達した場合、あなたはトップの学生を入力することができますOld
教室。 -
S0
またはS1
人々の完全な教室の後、人々のお祝い混合グループは、トップの学生になるために会場もできるOld
教室、別のがあるでしょうMajor GC
小切手の責任教師、ノーMinor GC
今厳格な、幸せなので、教師のチューブ。 -
ジョブはこのレコード学生のフル記録されている場合は、非常に手間の私たちの学校は自由なので、申し訳ありませんが、また、却下され、あなたに仕事を与えることを気にしないでください。この記録を作りました。
-
Metaspace
教室、またはあなたがハハ、発射されるのを恐れることなく社長、との外出先での生徒に何かを持っている場合。
新入生の学校の黒板インサイダーようこそ
-
オブジェクトの作成を記録するために使用し
GC年龄
、それぞれGC
1年後にまだ生きているものをプラス。 -
すべての新しく作成されたオブジェクトはしている
Eden
エリア。 -
Minor GC
オブジェクトがまだ引用されている、それがマークされていないかどうかを確認します。 -
行っ
Minor GC
後に、Eden
ライブオブジェクトはに移動しているS0
か、S1
地域。
- 移動した後、領域がクリアされ、生存年齢を1増加させます。
Minor GC
Eden
- 第二は
Minor GC
、繰り返し(3、4)工程、このとき別の実行S1
重宝する領域を。
-
明確な
-
もう一度行って
Minor GC
レンダリングを見てください。 -
明確な
- 旧世代のシステム設定は、4歳を想定し、データ番号3は、旧世代領域にアップグレードすることができます。
-
明確な
Survivor
完全な転写領域の後に直接するTenrued
/Old Generation
それは望んでいる。この場合の下に、Survivor
オブジェクトが生きている地域ではなく、十分なスペースは、最大保存します。
-
データをクリア
- 年齢、旧世代のシステム設定が20倍であると仮定すると、次いで、第二十の後に、クリアされます
Major GC
、それは自動的にラベル付け処理されます。
-
削除
Metaspace
エリアは、GCのルーツに属します。
虚拟机栈(栈帧中的本地变量表)中引用的对象。
方法区中类静态属性引用的对象。
方法区中常量引用的对象。
本地方法栈中JNI(即一般说的Native方法)引用的对象。
- 場合は
Old Generation
、あまりにも完全な、私はあなたが頻繁に見報告しますOOM
異常を。
実際の例
1. Zhangsanlisi初日の学生は、これに来JVM
学校
# 教室里只有他们两人
Object zhangsan = new Object(); Object lisi = new Object();
素敵な先生を見つける2.'llと生徒の問題を解決することを目的
# zhangsan说我会,然后
zhangsan.do();
- 今回は
Minor GC
先生が登場。
# 发现lisi在那里傻傻的发呆,不会做作业就会看
# GC老师直接标记它为没用之人,zhangsan标记为有用之才。
Minor GC
教師専門分野の実行
# 告诉zhangsan去隔壁的`S0`教室继续做题
# 拿出化骨水化掉了lisi
3.zhangsanはに来たS0
教室
# 教室越来越多人,已经挤不进人了
# Minor GC老师又给没用的人进行标记,他又成功躲过了这次
# 老师告诉他去`S1`教室继续做题,他要化人了
4.zhangsanはに来たS1
教室
# 经过了几轮的S0/S1教室来回跑,他已经躲过了15次了
# `Minor GC`老师告诉他,你可以去尖子班做题了
5.zhangsanはに来たTenrued/Old Generation
教室、Major GC
先生は本当に多くの場合、私たちを見ません。
# zhangsan在这里又避免了5次的化骨水,但时间却花了比之前的几十倍
# 最后zhangsan还是被化掉了,因为前后加起来、太老了,伤不起。
遊びのZhangSanゲームオーバー全部終わり
PS注:この記事は、ここでは、非常にシンプルな知識JVMイラスト、理解しやすいが、そこにJVMコンテンツに氷山の一角に属します。