随笔分类 -  JVM

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