jvm运行时数据区 jvm分为哪些区,每一个区干吗的?
jvm分为哪些区,每一个区干吗的?
JVM虚拟机分为三代:年轻一代、老一代和持久一代。持久化生成主要存储Java类的类信息,与垃圾收集关系不大。年轻一代和老一代的划分对垃圾收集的影响较大。所有新生成的对象首先放置在较年轻的一代中。年轻一代的目标是尽快收集生命周期较短的物体。年轻一代被分为三个区。一个伊甸园,两个幸存者。两个幸存者中的一个总是空的。
郑州包括哪几个区?
郑州人,有惠济区、金水区、二七区、郑东新区、管城区、中原区、高新区、中牟区、兴阳区、登封区、巩义区、上街区、新密区等。据说会扩大。
一般的Java项目需要JVM调优吗?注意哪些?
Java以其开源、高效、跨平台和良好的生态性成为主流编程语言。即使是以前使用其他技术栈的公司,现在也在慢慢地向Java平台迁移。我相信很多Java学生在面试时都会被问到关于JVM调优的问题,但是他们似乎很少在日常工作中进行JVM调优。您想为一般Java项目进行JVM调优吗?
在我们讨论JVM调优之前,让我们先讨论一下JVM。什么是JVM?实际上,JVM是Java虚拟机的缩写。Java能够跨平台的原因实际上是基于JVM。
尽管JVM本身是一个计算机程序,但它也有自己的一套软件和硬件环境。
就像你买了一台新电脑。系统安装后,您可以正常使用计算机。但是很多用户需要自定义电脑,比如桌面背景。同样,JVM安装后,即使没有任何额外的设置,也可以正常工作,但在某些情况下,还需要对JVM进行调优,而调优的手段就是更改JVM参数。
JVM调优的目的是使用尽可能少的内存和CPU,使Java程序获得更高的吞吐量和更低的延迟。
2. JVM常用调优项
JVM最常用的调优是更改JVM的默认参数,例如:
最大堆大小:-Xmx
新生成大小:-XMN
不朽生成的最小值:-XX:permsize
不朽生成的最大值:-XX:maxpermsize
事实上,JVM的默认设置可以满足一般项目的需要。似乎只要您更改参数,JVM的调优就非常简单,但不是我,而是您认为的那么简单。
如果JVM调优不好,会影响整个项目的稳定性。在正常情况下,不建议调优JVM,除非Java项目内存太高,服务器内存太低。
JVM堆内存中,为何有两个survivor区,一个不行吗?
年轻一代使用复制算法。每次执行小GC时,伊甸园区域中幸存的物体都会被复制到幸存区域,幸存的物体会被移到老年。如果只有一个幸存者区域,它将产生垃圾碎片。
让我们看看只有一个s区域的情况
如果有两个区域,一个是S1,一个是S2,则将S1和Eden区域的幸存对象复制到S2,下次触发时将S2和Eden区域的幸存对象复制到S1
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。