JVM内存结构图
2020-04-06 16:01:52来源:博客园 阅读 ()
JVM内存结构图
- 程序计数器:存放当前线程接下来将要执行的字节码指令、分支、循环、跳转、异常处理等信息。一个处理器只能执行一个线程中的指令,为了能够在CPU时间片轮转切换上下问之后顺利回到正确的执行位置,每条线程都需要具有一个独立的程序计数器,线程之间互不影响,JVM将此部分设计为线程私有的。
- 虚拟机栈:也是线程私有的,它的生命周期与线程相同,是在JVM运行创建的。在线程中,方法在执行的时候会创建一个名为栈帧(stack frame)的数据结构,用于存储局部变量表、操作栈、动态链接、方法出口等信息。方法的调用实际对应着虚拟机栈的压栈和弹栈的过程。每一个线程创建之后都有创建一个对应的虚拟机栈,虚拟机栈的大小通过-xss来配置,相同的虚拟机栈大小若是局部变量表等占用的内存越小,则可以被压入的栈帧就会越多也就是方法调用的深度,反之可被压入的栈帧就会越少,一般将栈帧内存的大小成为宽度。而栈帧的数量则成为虚拟机栈的深度。该内存划分的大小将决定一个JVM进程能够创建多少个线程。 线程的创建数量是随着虚拟机栈内存的增多而减少。
- 堆内存:用于存储JVM的所有对象,该区域也是JVM垃圾回收重点照顾的对象。也称为”GC堆“
方法区:多个线程共享此区域,存储被虚拟机加载的类信息、常量、静态变量、编译后的代码。
- 可以粗略的认为一个Java进程的内存大小为:堆内存+线程数量+栈内存
- 线程数量:(最大地址空间(MaxProcessMemory))-JVM内存-ReservedOsMemory)/ThreadStackSize(XSS)
原文链接:https://www.cnblogs.com/Mr-GG/p/jvm-nei-cun-jie-gou-tu.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JVM常见面试题解析 2020-06-11
- 【JVM故事】了解JVM的结构,好在面试时吹牛 2020-06-06
- 京东面试,被面试官按头问JVM,绝望 2020-06-05
- JVM系列之.JVM内存模型如何正确运用操作?本文详解 2020-06-04
- JDK8的JVM内存模型小结 2020-06-03
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash