私はこのトピックの初心者です。私の質問がはっきりしていてもお詫び申し上げますが、ここにあります。
Javaアプリケーションを起動するたびに、JVMの新しいインスタンスが作成されます。 JVM自体は、OS上で実行されるプロセスであり、他のプロセスと同様に、独自のメモリ要件があります。
私は、ヒープメモリ構造とヒープ以外のメモリ構造、およびそれらをどのように設定して操作できるのかを知っています。私が探しているのは、jvmプロセス自体のメモリの詳細です。 全体的なメモリの分割方法つまりjvm独自のメモリ要件+ヒープ+非ヒープ+ネイティブスタック
いくつのセグメントがありますか?
OSがJVMに割り当てるメモリ量と、jvmがそれをさらにどのように使用していますか?
アプリケーションの実行中にこれらの詳細を確認するコマンドまたはユーティリティはありますか?
私はたくさんの検索をしましたが、この方向で具体的なものは何も見つかりませんでした。ほとんどの記事でヒープとヒープ以外のメモリ構造(eden/old/metaなど)が説明されています。私はまた、links-の下に訪れたそれは私が私が探し始めることができるように、このトピック上の任意のポインタは素晴らしいことだ、ここにこだわっているようだ
JVM Memory Types
How is the java memory pool divided?
JVM Memory segments allocation
https://blog.codecentric.de/en/2010/01/the-java-memory-architecture-1-act/
JVM memory mapping over a Linux Process
Understanding JVM Memory Allocation and Java Out of Memory: Heap Space
その方向に。プロセスとしてのJVMのメモリの詳細
答えて
Java 8のネイティブメモリートラッキング(NMT)機能は、質問に答えるのに役立ちます。オプションで
実行するJava -XX:NativeMemoryTracking=summary
その後、実行時にJVMのメモリの統計情報を印刷するには、次のコマンドを実行します。
jcmd <pid> VM.native_memory summary
を出力するようになります。
Total: reserved=664192KB, committed=253120KB
- Java Heap (reserved=516096KB, committed=204800KB)
(mmap: reserved=516096KB, committed=204800KB)
- Class (reserved=6568KB, committed=4140KB)
(classes #665)
(malloc=424KB, #1000)
(mmap: reserved=6144KB, committed=3716KB)
- Thread (reserved=6868KB, committed=6868KB)
(thread #15)
(stack: reserved=6780KB, committed=6780KB)
(malloc=27KB, #66)
(arena=61KB, #30)
- Code (reserved=102414KB, committed=6314KB)
(malloc=2574KB, #74316)
(mmap: reserved=99840KB, committed=3740KB)
- GC (reserved=26154KB, committed=24938KB)
(malloc=486KB, #110)
(mmap: reserved=25668KB, committed=24452KB)
- Compiler (reserved=106KB, committed=106KB)
(malloc=7KB, #90)
(arena=99KB, #3)
- Internal (reserved=586KB, committed=554KB)
(malloc=554KB, #1677)
(mmap: reserved=32KB, committed=0KB)
- Symbol (reserved=906KB, committed=906KB)
(malloc=514KB, #2736)
(arena=392KB, #1)
- Memory Tracking (reserved=3184KB, committed=3184KB)
(malloc=3184KB, #300)
- Pooled Free Chunks (reserved=1276KB, committed=1276KB)
(malloc=1276KB)
- Unknown (reserved=33KB, committed=33KB)
(arena=33KB, #1)
コマンドラインユーティリティをお探しの場合は、起動中のすべてのJavaプロセスのPIDだけを出力するjps
から開始してください。次に、発見したいものを選択し、jmap
とそのPIDを使用します。
JDKにはビジュアルツールも付属しています。古いものはJConsoke
であり、より新しいものはVisualVM
です。
私はJconsoleとVisual VMを使用しました。ちょうどこの記事が見つかりました。このようなものがあります。http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the-java-process.html – meexplorer
OSはXメモリをプロセスとしてJVMに割り当て、次にXからJVMは-Xms/-Xmx/-XXに基づいてヒープ/パーマネントにメモリを割り当てます:PermSize、MaxPermSize、残りのメモリは(X1 = X-heap-パーマ)。 X1では何が起こりますか、JVMがX1からどれくらいのメモリを必要としますか?他のセグメントにどれだけの量がありますか?記事が説明するように他のセグメントはほとんどありません – meexplorer
- 1. Objective-Cのメモリの詳細
- 2. より詳細な "詳細" apache/phpプロセスの表示方法
- 3. Ruby On Rails登録プロセスの詳細
- 4. Crystal Reports詳細の詳細
- 5. プロセスごとにJVMによって使用されるメモリ
- 6. プログラムからJVMのバージョンを見つける方法...詳細は?
- 7. JVMとJava Linuxプロセス
- 8. PHPでメモリを使用しているものの詳細を取得
- 9. Domino JVMメモリとPOI
- 10. コンピュータ上の実行中のプロセスについての詳細について
- 11. ストリームフォーマットのデフレートとgzip - 詳細
- 12. 詳細:mklinkとそのオプション
- 13. イテレータと印刷の詳細
- 14. GameCenterの詳細
- 15. 詳細のアンダーレイチャート
- 16. デリゲートの詳細
- 17. StreamWriterの詳細
- 18. MySQLの詳細
- 19. マスター詳細データウィンドウの詳細を新しいウィンドウに表示
- 20. のMapViewの詳細
- 21. Angular2とMDのモバイルでデスクトップ/詳細のみのマスター詳細のベストプラクティス
- 22. モーメントフォーマット詳細日付オブジェクトとして
- 23. 詳細なしのjava.lang.SecurityException
- 24. pidからプロセスの詳細を取得する方法
- 25. 画像としての応答とその詳細nodejs
- 26. Windowsの詳細メモリ使用量を確認する方法は?
- 27. Android 6.0.1 - アプリの詳細とアプリの権限の詳細は異なる
- 28. 詳細テーブルのカスタムヘッダ
- 29. テーブル詳細のブートストラップドロップダウン
- 30. Jenkinsプラグインの詳細
私が探していたものです。 – meexplorer