随笔分类 - JVM
摘要:一、核心指标 调优之前首先我们要知道怎样才算是“优”,不能笼统的说我的程序性能很好,所以就需要有一个具体的指标来衡量性能情况,而在JVM里面衡量性能两个指标分别“吞吐量”和“停顿时间”。 吞吐量:程序运行过程中执行两种任务,分别是执行业务代码和进行垃圾回收,吞吐量大意就是说程序运行业务代码的时间越多
阅读全文
摘要:一、概述 在Java开发中,我们常听说“Java是解释执行的”,但实际运行时却能感受到接近原生代码的性能。这背后的核心功臣,正是JVM中的JIT(Just-In-Time)即时编译器。它打破了“解释执行”的性能瓶颈,通过动态编译将热点代码转化为原生机器码,让Java实现了“一次编写,到处运行”与高性
阅读全文
摘要:一、概述 一般而言JDK8按照默认情况下,new Object()一个对象占多少内存空间? 答案是16字节——但这个数字并非凭空而来,而是由HotSpot虚拟机规定的「对象内存布局」决定的。 在HotSpot中,所有Java对象(包括普通对象和数组对象)的内存布局统一分为三部分: 对象头(Heade
阅读全文
摘要:一、简介和性能 G1的目标是在可控的停顿时间内完成垃圾回收,所以进行了分区设计,在回收时采用部分内存回收(在YGC时会回收所有新生代分区,在混合回收时会回收所有的新生代分区和部分老生代分区),支持的内存也可以达到几十个GB或者上百个GB。为了进行部分回收,G1实现了RSet管理对象的引用关系。基于G
阅读全文
摘要:虽然目前大部分系统使用的是JDK8,使用的垃圾回收器也大概率为G1或者更古老的垃圾回收器,但是截止到目前为止,JDK已经更新到JDK16了,垃圾回收器也几乎在每一次迭代中被更新,目前最前沿的垃圾回收器为Shenandoah和ZGC,这两款垃圾回收器都是以低延时为主要目的。 一、概述 Shenando
阅读全文
摘要:一、概述 G1(Garbage First)垃圾回收器是在Java7 update 4之后引入的一个新的垃圾回收器。HotSpot为解决CMS算法产生空间碎片和其它一系列的问题缺陷,而提供了另外一种垃圾回收策略。G1是一个分代的,增量的,并行与并发的标记-复制垃圾回收器。它的设计目标是为了适应现在不
阅读全文
摘要:一、JVM简介 JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。JVM屏蔽了与具体操作系统平台相关的信息,使Java程
阅读全文
摘要:启动Java应用程序。 一、概要 java命令支持广泛的选项,可以分为以下几类: 标准选项 非标准选项 高级运行时选项 高级JIT编译器选项 高级可维护性选项 高级垃圾收集选项 Java虚拟机(JVM)的所有实现都保证支持标准选项。它们用于常见操作,例如检查JRE的版本、设置类路径、启用详细输出等。
阅读全文
摘要:一、简介 Concurrent Mark Sweep简称CMS,是一种以获取最短回收停顿时间为目标的收集器,尤其重视服务的响应速度。 CMS是老年代垃圾回收器,基于标记-清除算法实现,只回收老年代和永久代(jdk 1.8开始为元数据区,需要设置CMSClassUnloadingEnabled),一般
阅读全文

浙公网安备 33010602011771号