[投稿] JVM - 示し記事

JVM - グラフィック論文

HTTPS:// www.jianshu.com/p/1353d0a64346

 


32019.07.13午後09時49分58秒は、80ワード992を読みます

1992年3月に、あるずっと前にロング、、、NB轟音コーヒー学校は、その名前が、そこに生まれたされJAVA、平均的な学生は心を失うことになる、学校の規則や規制が非常に強力なされ、とどまることができる人のような唯一のトップの学生、ありません私は男が推測「あなた。」

キャラクター登場リスト

フルネーム エイリアス 略語
学校 Java仮想マシン JVM
教室 ヒープ・スペース ヒープ
教師 ガベージコレクタ マイナーGC /メジャーGC
学生 データ オブジェクト

学校の計画

 
一般的な名前 アクセス権 略語
エデン教室 新生児 エデン
Survivor0 / 1教室 栄誉 S0S1
Tenured/Old Generation教室 トップ学生専用 古い
Metaspace教室 生徒、校長の特別な メタスペース

ようこそ新入生の学校の黒板

  1. この新生児は、ジョブ・ログを受け取ります。備考:( 学生は宿題はすべてのカバー章一度行って行っていたかどうかを記録)。

  2. 自身新生児会場へ次  Eden の教室。

  3. Minor GC教師のチェックは教師を標識することはありません、何の宿題を持っていないしていきます。

  4. 独自の会場に、トップの学生をラベル付けされていない  S0 か、  S1 教室、ノート:( この二つは、教室が空になっている必要があり、学生が直接マイナーGCによって入力されたアレンジを担当した空の教室空の教室の教師を入力することはできません)、会場の終了追放後の  Eden 教室貧しい学生の。

  5. どちらの教室のMinor GC先生は思想教育を行い、その後追放するために学校の後に滞在する宿題の学生をしていない、座ってするために、名前の教師の後、教室内の別の会場の仕事をし、チェックを継続していきます。

  6. Minor GCジョブごとに一回教師のチェック、プラスは、あなたにポイントを与えるスコアが指定されたスコアに達した場合、あなたはトップの学生を入力することができます  Old 教室。

  7. S0またはS1人々の完全な教室の後、人々のお祝い混合グループは、トップの学生になるために会場もできる  Old 教室、別のがあるでしょうMajor GC小切手の責任教師、ノーMinor GC今厳格な、幸せなので、教師のチューブ。

  8. ジョブはこのレコード学生のフル記録されている場合は、非常に手間の私たちの学校は自由なので、申し訳ありませんが、また、却下され、あなたに仕事を与えることを気にしないでください。この記録を作りました。

  9. Metaspace教室、またはあなたがハハ、発射されるのを恐れることなく社長、との外出先での生徒に何かを持っている場合。


新入生の学校の黒板インサイダーようこそ

  1. オブジェクトの作成を記録するために使用し  GC年龄、それぞれ  GC 1年後にまだ生きているものをプラス。

  2. すべての新しく作成されたオブジェクトはしている  Eden エリア。

     

     

  3. Minor GC オブジェクトがまだ引用されている、それがマークされていないかどうかを確認します。

     

     

  4. 行っMinor GC後に、Edenライブオブジェクトはに移動しているS0か、S1地域。

     

     

  • 移動した後、領域がクリアされ、生存年齢を1増加させます。Minor GCEden
     
  1. 第二はMinor GC、繰り返し(3、4)工程、このとき別の実行S1重宝する領域を。
     
  • 明確な


     
  • もう一度行ってMinor GCレンダリングを見てください。

     

     

  • 明確な


     
  1. 旧世代のシステム設定は、4歳を想定し、データ番号3は、旧世代領域にアップグレードすることができます。
     
  • 明確な


     
  1. Survivor完全な転写領域の後に直接するTenrued/ Old Generationそれは望んでいる。この場合の下に、Survivorオブジェクトが生きている地域ではなく、十分なスペースは、最大保存します。
     
  • データをクリア


     
  1. 年齢、旧世代のシステム設定が20倍であると仮定すると、次いで、第二十の後に、クリアされますMajor GC、それは自動的にラベル付け処理されます。
     
  • 削除


     
  1. Metaspaceエリアは、GCのルーツに属します。
虚拟机栈(栈帧中的本地变量表)中引用的对象。
方法区中类静态属性引用的对象。
方法区中常量引用的对象。
本地方法栈中JNI(即一般说的Native方法)引用的对象。
  1. 場合は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コンテンツに氷山の一角に属します。

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/12606247.html