gpt4 book ai didi

java - JVM作为一个进程的内存细节

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:22:20 25 4
gpt4 key购买 nike

我是这个主题的新手,所以,如果我的问题很明显,我深表歉意——
每当我们启动 Java 应用程序时,都会创建一个新的 JVM 实例。 JVM 本身是一个在操作系统上运行的进程,并且像任何其他进程一样,它有自己的内存需求。
我知道堆和非堆内存结构以及如何配置和操作它们。我正在寻找的是 jvm 进程本身的内存细节,整体内存是怎么划分的即jvm自身的内存要求+heap+non-heap+native stack
有多少段?
OS给JVM分配了多少内存,jvm又是如何使用的?
在运行应用程序时是否有任何命令或实用程序可以检查这些详细信息?
我在谷歌上搜索了很多但没有找到任何具体的方向,几乎所有文章都解释了堆和非堆内存结构(eden/old/meta 等)。我还访问了以下链接-
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
看来我被困在这里了,关于这个主题的任何指示都会很好,这样我就可以开始朝那个方向看。

最佳答案

Java 8 的 native 内存跟踪 (NMT) 功能有助于回答您的问题。

使用选项 -XX:NativeMemoryTracking=summary
运行 Java然后在运行时执行如下命令打印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)

更多信息 herehere .

关于java - JVM作为一个进程的内存细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41033209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com