jvm 垃圾回收

回收策略 标记清除
复制
标记整理

根对象来源: java 栈 ,静态变量,寄存器

年轻代:Eden和两个survivor
老年代
持久代

   1. jmap -head pid 可以查看堆的配置情况,该命令可能导致进程终止。 可以使用jstat -gc 代替。

            2. jmap -histo:live pid 查看堆中所有存活对象的情况:对象数量和所占用空间大小。

 

触发回收: 

1. scavenge gc: 新对象进入eden 失败,触发GC ,对eden进行gc ,把存活对象放入sur 区。

2. full gc: 对整个堆整理,包含持久代。 触发条件: 老年代写满,持久代写满。 调用system.gc() , 堆的分配策略变化。

收集器:处理垃圾回收的线程。 包含三种方式:串行 , 并行,并发。 前两种需要暂停应用,多应用于新生代。 

并行和并发:

并行: 吞吐量优先,单位时间内能够处理的请求数。并行会暂停应用,但能较快完成,只占用很少时间。

并发: 响应时间优先,通常是单个服务的执行时间,并发垃圾处理线程会和业务处理线程同时存在,影响吞吐量。不会暂停应用。 

原文地址:https://www.cnblogs.com/zhangchenglzhao/p/12626076.html