ホームページ > Java > &#&チュートリアル > Java 仮想マシン学習 - オブジェクトのメモリ割り当てとリサイクル

Java 仮想マシン学習 - オブジェクトのメモリ割り当てとリサイクル

黄舟
リリース: 2017-03-18 17:51:50
オリジナル
1646 人が閲覧しました

オブジェクトはEdenで最初に割り当てられます

ほとんどの場合、オブジェクトは新世代Eden領域で最初に割り当てられます。 Eden メモリ領域に割り当てられる十分なスペースがない場合、仮想マシンはマイナー GC (新世代 GC) をトリガーします。マイナー GC 中に、仮想マシンは Eden 領域内のオブジェクトを Survivor 領域の 1 つに移動します。



大きなオブジェクトは古い世代に直接入ります

いわゆる大きなオブジェクトとは、大量の連続スペースを必要とするオブジェクトを指します。仮想マシンは XX:PretenureSizeThreshold パラメータを提供するため、この値より大きいオブジェクトは古い世代に直接割り当てられます。

長期間存続したオブジェクトは古い世代に入ります

仮想マシンは、世代別コレクションの考え方を使用してメモリを管理する際、どのオブジェクトを新しい世代に配置するかを識別できる必要があります。世代と古い世代に配置する必要があるもの。これを実現するために、仮想マシンは、新しい世代の GC 後にオブジェクトが存続するたびに、オブジェクトの年齢が特定のレベル (デフォルトは 15) に達すると 1 年ずつ増加します。古い世代に昇格するオブジェクトの年齢制限は、-XX:MaxTenuringThreshold で設定できます。

マイナー GC とフル GC の違い

新世代 GC (マイナー GC): 新しい世代で発生するガベージ コレクション アクションを指します。ほとんどのオブジェクトは一時的な生死の特性を持っているため、マイナー GC は非常に頻繁に発生します。リサイクル速度も比較的速いです。

旧世代 GC (メジャー GC / フル GC): メジャー GC の発生後に、多くの場合少なくとも 1 つのマイナー GC を伴う、旧世代で発生する GC を指します。メジャー GC の速度は、通常、マイナー GC よりも 10 倍以上遅くなります。

上記は Java 仮想マシンの学習 - オブジェクトのメモリ割り当てとリサイクルの内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

関連記事:

Java仮想マシンを詳しく解説

Java仮想マシンを深く理解

Java仮想マシン学習 - クラスローディングの仕組み

Java仮想マシン学習 - オブジェクトアクセス

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート