温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 编程语言 > 
  • JVM快速调优手册之一: 内存结构(堆内存和非堆内存)

JVM快速调优手册之一: 内存结构(堆内存和非堆内存)

发布时间:2020-07-18 03:47:16 来源:网络 阅读:425 作者:Stitch_x 栏目: 编程语言

图为Java虚拟机运行时的数据区:

JVM快速调优手册之一: 内存结构(堆内存和非堆内存)

方法区

也称”永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB(未验证),可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。
运行时常量池:是方法区的一部分,Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编译器生成的各种符号引用,这部分内容将在类加载后放到方法区的运行时常量池中。

虚拟机栈

描述的是java 方法执行的内存模型:每个方法被执行的时候 都会创建一个“栈帧”用于存储局部变量表(包括参数)、操作栈、方法出口等信息。每个方法被调用到执行完的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。声明周期与线程相同,是线程私有的。
局部变量表存放了编译器可知的各种基本数据类型(boolean、byte、char、short、int、float、long、 double)、对象引用(引用指针,并非对象本身),其中64位长度的long和double类型的数据会占用2个局部变量的空间,其余数据类型只占1 个。局部变量表所需的内存空间在编译期间完成分配,当进入一个方法时,这个方法需要在栈帧中分配多大的局部变量是完全确定的,在运行期间栈帧不会改变局部 变量表的大小空间。

本地方法栈

与虚拟机栈基本类似,区别在于虚拟机栈为虚拟机执行的java方法服务,而本地方法栈则是为Native方法服务。

也叫做java 堆、GC堆,是java虚拟机所管理的内存中最大的一块内存区域,也是被各个线程共享的内存区域,在JVM启动时创建。该内存区域存放了对象实例及数组(所有new的对象)。其大小通过-Xms(最小值)和-Xmx(最大值)参数设置,-Xms为JVM启动时申请的最小内存,-Xmx为JVM可申请的最大内存。在JVM启动时,最大内存会被保留下来。为对象内存而保留的地址空间可以被分成年轻代和老年代。
默认当空余堆内存小于40%时,JVM会增大Heap到-Xmx指定的大小,可通过-XX:MinHeapFreeRation=来指定这个比列;当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过XX:MaxHeapFreeRation=来指定这个比列,对于运行系统,为避免在运行时频繁调整Heap的大小,通常-Xms与-Xmx的值设成一样。

Parameter Default Value
MinHeapFreeRatio 40
MaxHeapFreeRatio 70
-Xms 3670k
-Xmx 64m

注:如果是64位系统,这些值一般需要扩张30%,来容纳在64位系统下变大的对象。

从J2SE 1.2开始,JVM使用分代收集算法,在不同年代的区域里使用不同的算法。堆被划分为新生代和老年代。新生代主要存储新创建的对象和尚未进入老年代的对象。老年代存储经过多次新生代GC(MinorGC)任然存活的对象。
JVM快速调优手册之一: 内存结构(堆内存和非堆内存)

注1:图中的Perm不是堆内存,是永久代注2:图中的Virtaul则是各区域还未被分配的内存,即最大内存-当前分配的内存

新生代:

新生代包括一块eden(伊甸园)和2块survivor(通常又称S0和S1或From和To)。大多数对象都是在eden中初始化。而对于2块survivor来说,总有一块是空的,它会在下一个复制收集过程中作为eden中的活跃对象和另一块survivor的目的地。在对象衰老之前(也就是被复制到tenured之前),它们会在两块survivor区域之间以这样的方式复制。可通过-Xmn参数来指定新生代的大小,也可以通过-XX:SurvivorRation来调整Eden Space及Survivor Space的大小。

老年代:

用于存放经过多次新生代Minor GC依然存活的对象,例如缓存对象,新建的对象也有可能直接进入老年代,主要有两种情况:

  1. 大对象,可通过启动参数设置-XX:PretenureSizeThreshold=1024(单位为字节,默认为0)来代表超过多大时就不在新生代分配,而是直接在老年代分配。
  2. 大的数组对象,即数组中无引用外部对象。

老年代所占的内存大小为-Xmx对应的值减去-Xmn对应的值。

程序计数器

是最小的一块内存区域,它的作用是当前线程所执行的字节码的行号指示器,在虚拟机的模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、异常处理、线程恢复等基础功能都需要依赖计数器完成。

向AI问一下细节
推荐阅读:
  1. JVM运行时数据区如何划分
  2. JVM 方法调用之静态分派(详解)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jvm java 内
  • 上一篇新闻:
    excel学习笔记之二
  • 下一篇新闻:
    在低版本Android上使用Material Design

猜你喜欢

  • C语言怎么访问结构体中的成员
  • r语言怎么删除包含缺失值的行
  • c语言一维数组删除重复值的方法是什么
  • python中class的概念是什么
  • docker内部日志输出的方法是什么
  • r语言缺失值怎么处理
  • oracle双机热备的模式有哪些
  • mysql集群搭建的方式有哪几种
  • mysql无法启动服务的原因有哪些
  • 怎么用r语言读取csv数据
最新资讯
  • 如何在Haskell中进行分布式编程和计算
  • Haskell中的静态类型检查有哪些好处和潜在的缺点
  • Haskell编程中如何处理和优化大型文集的处理
  • 在Haskell中如何使用正则表达式进行模式匹配和数据提取
  • Haskell中的元编程有哪些方式和应用
  • 在Haskell中如何实现和使用软件事务内存来处理并发问题
  • 如何在Haskell中使用模块和命名空间进行代码组织
  • Haskell中的包依赖管理和解决方案是什么
  • 在Haskell中如何进行科学计算和数值分析
  • Haskell中支持哪些类型的数据库接口和ORM技术
相关推荐
  • 使用JVM 如何实现动态分派功能
  • 深入浅析Java中 JVM的原理
  • JVM(Java虚拟机)简介(动力节点Java学院整理)
  • jvm crash的崩溃日志详细分析及注意点
  • JVM教程之内存管理和垃圾回收(三)
  • Java JVM虚拟机是如何运行的
  • 老生常谈JVM的内存溢出说明及参数调整
  • 深入浅析JVM的结构体系
  • JVM中的堆内存和栈内存各代表什么意思
  • JVM内存泄露的原因是什么

相关标签

jvm内存 jvm内存结构 jvm监控工具 jvm类加载器 jvm类加载机制 jvm垃圾收集器 jvm类 jvm、gc jvm gc javaee java架构师 java虚拟机 spire.pdf for java java_home java异常 javase javajava笔记编程学习 java开发环境 java函数 javamailsender
AI

深圳SEO优化公司永湖关键词按天扣费广州网络营销横岗网站优化推广福田模板网站建设盐田百度爱采购观澜网页制作坪地营销网站罗湖网站搜索优化大浪网站优化按天计费盐田阿里店铺托管永湖网站推广方案平湖SEO按天扣费石岩网站关键词优化布吉百度标王永湖网站优化按天计费横岗企业网站制作永湖标王同乐seo网站优化惠州网站改版大芬网站优化排名吉祥SEO按天收费光明网站优化南澳百姓网标王福永网站优化软件坑梓建站南澳建网站龙岗网站优化按天扣费永湖网站排名优化深圳seo网站优化观澜网站设计模板歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化