标签:java operating-system memory-management jvm
我是这个主题的新手,所以,如果我的问题是显而易见的,那么道歉但是在这里 – 每当我们启动一个Java应用程序时,就会创建一个新的JVM实例. JVM本身是一个在操作系统上运行的进程,与任何其他进程一样,它有自己的内存需求.
我知道堆和非堆内存结构以及它们如何配置和操作.我正在寻找的是jvm进程本身的内存细节,
整体内存如何划分,即jvm自己的内存需求堆积非堆本机堆栈
有几个细分市场?操作系统分配给JVM的内存量以及jvm如何进一步使用它?
在运行应用程序时是否有任何命令或实用程序来检查这些详细信息?
我已经google了很多但没有找到任何具体的方向,几乎所有文章都解释了堆和非堆内存结构(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的本机内存跟踪(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)
标签:java,operating-system,memory-management,jvm 来源: https://codeday.me/bug/20190823/1702173.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。