![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 74
让你三行代码QAQ
有道无术,术尚可求
展开
-
JVM-GC-常用调优命令和GC参数
定位问题常用命令top:查看内存/CPU占用情况top -Hp pid: 查看进程内线程情况jsp:查看java进程情况jstack 线程pid:查看进程内线程信息,一般查看线程状态,判断是否死锁。重点观察:WAITING、BLOCKED的线程,另外查看waiting on xxx,如果多个线程都在waiting on 某把锁,看哪个线程持有这把锁;jstat -gc:查看GC情况jinfo 线程pid:查看线程信息jstat -gc 线程pid 间隔时间:查看jmap -histo 线原创 2024-06-17 23:29:17 · 823 阅读 · 0 评论 -
JVM-GC-G1垃圾回收器
当堆内存空间达到一定的阈值,会触发MixedGC,和CMS回收步骤相似。这个阈值可以通过XX:InitiatingHeapOccupacyPercent参数设置,默认45%它是一个HashMap,记录其他Regin中的对象指向本Regin中的引用。这样不用扫描整个堆就可以知道当前谁引用了当前分区中的对象,只需要扫描RSet即可。用来记录可以被回收的card,即通过算法计算出垃圾多的card;G1的调优是尽量不要FGC。原创 2024-06-17 23:28:34 · 423 阅读 · 0 评论 -
JVM-GC-CMS垃圾回收器
CMS从提出概念到实际完成用了10年多的时间,在此之前没有过并发回收的垃圾回收器,因此它是一个垃圾回收器的里程碑,后来的G1也是基于CMS做的一些改进。由于CMS是并发清除的新时代,它也存留了很多问题,JDK任何版本都不会使用CMS作为默认垃圾回收器。incremental update:增量更新,关注引用的增加,如果要给黑色对象引用增加,将黑色对象标记为灰色。原创 2024-06-17 23:27:37 · 544 阅读 · 0 评论 -
JVM-GC-基础知识
JVM中的GC使用Root Searching寻找垃圾单独方式,并结合mark-sweep、copying、mark-compact三种清除算法形成了各有特点的垃圾回收器,且垃圾回收器的演变过程是因为内存空间的不断增大的必然原因。原创 2024-06-16 12:05:28 · 387 阅读 · 0 评论 -
JVM-GC-什么是垃圾
所谓垃圾其实是指,内存中没用的数据;没有任何引用指向这块内存,或者没有任何指针指向这块内存。没有的数据应该被清除,垃圾的处理其实是内存管理问题。JVM虽然不直接遵循冯诺依曼计算机体系架构,但极其相似,像是一台小型计算机。一台计算机运行程序的流程大概是这样的:操作系统先将程序加载(load)至内存中,并产生一个进程;CPU在内存中读取指令集并执行;在CPU执行期间需要用到内存中的数据,因此在CPU执行期间内存是必须的;原创 2024-06-16 12:04:57 · 455 阅读 · 0 评论 -
JVM-类加载
继承ClassLoader重写findClass方法在findClass方法中调用super.defineClass方法可以通过调用父类构造方法super(parent)指定父加载器可通过重写loadClass方法打破双亲委派,tomcat的热部署就是这个逻辑。原创 2024-06-16 12:03:41 · 959 阅读 · 0 评论 -
JVM-基础知识
全称ThreadLocal Allocation Buffer,在edne区大约占用1%的内存归线程独有空间,多线程下不必争抢堆内存空间,提高效率。原创 2024-06-16 01:20:25 · 472 阅读 · 1 评论