zzh

zzh

JVMローカルメモリ

コンセプト#

本地メモリ = 直接メモリ + メタスペース

直接メモリ#

  • コンセプト:直接メモリは、仮想マシンの実行時データ領域の一部ではなく、Java ヒープの外部にあり、システムから直接割り当てられたメモリ領域です。直接メモリは NIO を使用し、ヒープ内にある DirectByteBuffer を介してネイティブメモリを操作するため、読み書き性能が高いです。
  • 理由:直接メモリは JVM と IO デバイスとのやり取りに特化した物理メモリです。JVM は自動ガベージコレクション機構に基づいて動作するため、すべてのデータは GC 時に移動され続けます。もしもシステム API を呼び出して、ある位置のメモリをディスクに書き込むように操作システムに伝えた場合、その部分のデータが GC によって移動された場合、GC が終了した後に操作システムは誤ったデータを書き込んでしまう可能性があります。

メタスペース#

  • コンセプト:JDK1.8 からメタスペースの概念が導入されました。以前はメソッド領域 / 永続代と呼ばれていました。ロードされたクラス情報、定数、静的変数、定数プール、ジットコンパイル後のコードなどのデータを保存します。

ワーキングメモリとローカルメモリ#

JMM では、各スレッドには共有変数を格納するための独自のワーキングメモリがあり、各スレッドは自分のワーキングメモリ内の変数にのみアクセスできます。ワーキングメモリは抽象的な概念であり、実際のメモリではなく、CPU レジスタとキャッシュです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。