JVM虚拟机
文章平均质量分 92
JVM虚拟机
developer@liyong
GISer
展开
-
JVM-垃圾回收(标记算法,收集器)
2、Parallel Scavenge收集器(“吞吐量优先”收集器)(新生代) 使用复制算法,并行多线程,老年代使用串行收集器,它的独特之处是它的关注点与其他收集器不同,CMS等收集器的关注点是尽可能缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目的则是达到一个可控制的吞吐量(Throughput),即CPU用于运行用户代码的时间与CPU总消耗时间的比值,,每次垃圾收集时都发现有大批对象死去,只有少量存活,那就选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。原创 2024-02-16 22:54:04 · 1257 阅读 · 0 评论 -
学习笔记-JVM监控平台搭建
1 安装grafana2 安装Prometheus3 应用程序端。原创 2023-08-11 00:44:49 · 736 阅读 · 0 评论 -
JVM-JVM调优基础(理论)
申明:文章内容是本人学习极客时间课程所写,作为笔记进行记录,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。原资料地址:课程资料。原创 2024-02-18 15:07:32 · 1161 阅读 · 0 评论 -
学习笔记-JVM-工具包(JVM分析工具)
retained heap:对象及对象引用链中所有对象的大小总和,如果一个对象被释放掉,因为该对象的释放而被释放的所有的对象的大小。注意:这个命令执行,JVM会将整个heap的信息dump写入到一个文件,heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用, 线上系统慎用!jhat 命令支持预先设计的查询,比如:显示某个类的所有实例。Dominator Tree对象的支配树:帮助我们快速的发现占用内存最大的块,也能帮我们分析对象之间的依赖关系。原创 2023-08-10 21:28:55 · 3253 阅读 · 1 评论 -
JVM-JVM中对象的结构
新建Object对象,会在内存占用16个字节,其中Header占12个(MarkWord占8个+KlassPoint占4个),没有实例数据,补充对齐4个。开启指针压缩的情况下,存放Class指针的空间大小是4字节,MarkWord是8字节,对象头为12字节;**数组长度:**如果对象是数组,则记录数组长度,占4个byte,如果对象不是数组则不存在。对象的大小 = 12对象头 + 4*3的实例数据 + 0的填充 = 24bytes。**对齐填充:**保证数组的大小永远是8byte的整数倍。原创 2024-02-16 12:48:52 · 753 阅读 · 0 评论 -
JVM-JVM中对象的生命周期
申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。原资料地址:课程资料。原创 2024-02-16 12:11:06 · 1271 阅读 · 0 评论 -
JVM-运行时数据区
方法区(Method Area)是可供各个线程共享的运行时内存区域,方法区本质上是Java语言编译后代码存储区域,它存储每一个类的结构信息,例如:运行时常量池、成员变量、方法数据、构造方法和普通方法的字节码指令等内容。很多语言都有类似区域。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(针对多核处理器来说是一个内核)都只会执行一条线程中的指令。如果一个线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;原创 2024-02-11 14:30:17 · 1492 阅读 · 0 评论 -
JVM-类加载器 && 双亲委派机制
原文连接JVM是Java Virtual Machine(Java虚拟机)的缩写,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。由一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组成。JVM屏蔽了与操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可在多种平台上不加修改的运行,这也是Java能够“一次编译,到处运行的”原因。原创 2024-02-11 11:19:40 · 1476 阅读 · 0 评论