
JVM
文章平均质量分 97
Java虚拟机
bubble小拾
梦想不止于编程,行动才是起点
展开
-
阿里巴巴Arthas分析调优JVM实战及常量池详解
Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6+, 采用命令行交互模式,可以方便的定位和诊断线上程序运行问题。Arthas 官方文档十分详细。由于 Arthas 是用 Java 编写的,因此它是跨平台的,可以在 Linux、macOS 和 Windows 上运行。原创 2024-07-05 00:27:13 · 1550 阅读 · 0 评论 -
JVM调优命令工具使用与调优实战
S0:幸存1区当前使用比例S1:幸存2区当前使用比例E:伊甸园区使用比例O:老年代使用比例M:元数据区使用比例CCS:压缩使用比例YGC:年轻代垃圾回收次数FGC:老年代垃圾回收次数FGCT:老年代垃圾回收消耗时间GCT:垃圾回收消耗总时间。原创 2024-07-04 00:36:10 · 1240 阅读 · 0 评论 -
高并发场景JVM优化参数配置与垃圾收集底层三色标记算法详解
对于对象年龄应该为多少才移动到老年代比较合适,本例中一次minor gc要间隔二三十秒,大多数对象一般在几秒内就会变为垃圾,完全可以将默认的15岁改小一点,比如改为5,那么意味着对象要经过5次minor gc才会进入老年代,整个时间也有一两分钟了,如果对象这么长时间都没被回收,完全可以认为这些对象是会存活的比较长的对象,可以移动到老年代,而不是继续一直占用survivor区空间。在并发标记的过程中,因为标记期间应用线程还在继续跑,对象间的引用可能发生变化,多标和漏标的情况就有可能发生。原创 2024-07-03 00:05:46 · 1066 阅读 · 0 评论 -
JVM垃圾收集器Serial、Parallel Scavenge、ParNew、CMS、G1、ZGC详解
如何选择垃圾收集器?1.优先调整堆的大小让服务器自己来选择2.如果内存小于100M,使用串行收集器3.如果是单核,并且没有停顿时间的要求,串行或JVM自己选择4.如果允许停顿时间超过1秒,选择并行或者JVM自己选5.如果响应时间最重要,并且不能超过1秒,使用并发收集器6.4G以下可以用parallel,4-8G可以用ParNew+CMS,8G以上可以用G1,几百G以上用ZGC原创 2024-07-02 09:30:00 · 1300 阅读 · 0 评论 -
深入解析JVM对象创建与内存分配机制
jdk1.6 update14开始,在64bit操作系统中,JVM支持指针压缩jvm配置参数:UseCompressedOops,compressed--压缩、oop(ordinary object pointer)--对象指针启用指针压缩:-XX:+UseCompressedOops(默认开启),禁止指针压缩:-XX:-UseCompressedOops。原创 2024-07-01 00:30:00 · 1107 阅读 · 0 评论 -
JVM内存模型剖析与参数设置
但在Java 8及以后的版本,永久代被元数据区(Metaspace)取代,元数据区是一块位于本地内存中的区域,与堆内存分开。对象在堆内部挪动的过程其实是复制,原有区域对象还在,一般不直接清理,JVM内部清理过程只是将对象分配指针移动到区域的头位置即可,比如扫描s0区域,扫到gcroot引用的非垃圾对象是将这些对象复制到s1或老年代,最后扫描完了将s0区域的对象分配指针移动到区域的起始位置即可,s0区域之前对象并不直接清理,当有新对象分配了,原有区域里的对象也就被清除了。本地方法执行期间,栈帧会保持在栈顶。原创 2024-06-30 09:15:00 · 1705 阅读 · 0 评论 -
深入JDK源码-剖析JVM的类加载机制
commonLoader:Tomcat最基本的类加载器,加载路径中的class可以被Tomcat容器本身以及各个Webapp访问;catalinaLoader:Tomcat容器私有的类加载器,加载路径中的class对于Webapp不可见;sharedLoader:各个Webapp共享的类加载器,加载路径中的class对于所有Webapp可见,但是对于Tomcat容器不可见;原创 2024-06-29 09:30:00 · 1101 阅读 · 0 评论