JVM
JVM
小哥骑单车
Nobody can go back and start a new begining, but anyone can start today and make a new ending.
展开
-
GC Roots 是什么?哪些对象可以作为 GC Root?看完秒懂!
什么是是可达性分析算法?现代虚拟机基本都是采用可达性分析算法来判断对象是否存活,可达性算法的原理是以一系列叫做 GC Root的对象为起点出发,引出它们指向的下一个节点,再以下个节点为起点,引出此节点指向的下一个结点。这样通过 GC Root 串成的一条线就叫引用链),直到所有的结点都遍历完毕,如果相关对象不在任意一个以GC Root为起点的引用链中,则这些对象会被判断为垃圾对象,会被 GC 回收。如图示,如果用可达性算法即可解决上述循环引用的问题,因为从GC Root出发没有到达 ...转载 2021-08-05 21:40:49 · 6593 阅读 · 3 评论 -
JVM调优思路(CMS 和 G1对比)
一、JVM中堆和栈的设计思想:在Java中一个线程就会相应有一个线程栈与之对应,这点很容易理解,因为不同的线程执行逻辑有所不同,因此需要一个独立的线程栈。而堆则是所有线程共享的。栈因为是运行单位,因此里面存储的信息都是跟当前线程(或程序)相关信息的。包括局部变量、程序运行状态、方法返回值等等;而堆只负责存储对象信息。为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?1、从软件设计的角度看,栈代表了处理逻辑,而堆代表了数据。这样分开,使得处理逻辑更为清晰。分而治之的思想。这种隔离、模块化的思想原创 2021-05-10 14:27:39 · 1455 阅读 · 0 评论 -
使用jvisualvm.exe远程监控JVM虚拟机
1、需要在被监控的服务端配置如下参数:我是在springboot项目的*.sh脚本中添加的:JAVA_OPTS="-Djava.rmi.server.hostname=172.16.22.197 -Dcom.sun.management.jmxremote.port=8099 -Dcom.sun.management.jmxremote.rmi.port=8099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxrem原创 2020-07-20 20:13:00 · 759 阅读 · 0 评论 -
《深入理解Java虚拟机》(一)、Java内存区域与内存溢出异常
以下内容大部分摘要自《深入理解Java虚拟机》:1、运行时数据区域Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁时间;Java 虚拟机所管理的内存将会包括以下几个运行时数据区域。(1)、程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它可以...原创 2019-10-24 10:28:26 · 307 阅读 · 0 评论 -
面试问到的JVM性能调优篇
转载自:https://www.toutiao.com/a6683710658250277380/阿里面试100%问到,JVM性能调优篇Java学士2019-04-25 14:10:54JVM 调优概述性能定义吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标。 延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃...转载 2019-10-17 17:51:31 · 646 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
以下转载文章:https://blog.csdn.net/wisgood/article/details/25343845?spm=a2c4e.10696291.0.0.60f019a4UhULJ5#commentBoxJDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,...转载 2019-10-17 17:42:42 · 288 阅读 · 0 评论