首页 > 免root版 > 如何开启gg修改器root_如何开启gg修改器守护进程
如何开启gg修改器root_如何开启gg修改器守护进程
  • 如何开启gg修改器root_如何开启gg修改器守护进程

  • 大小:11.92MB日期:2024-03-28 23:06:56
  • 语言:简体中文系统:Android
绿色无毒,安全可靠!部分设备误报拦截请通过!

应用详情

大家好,今天小编为大家分享关于如何开启gg修改器root_如何开启gg修改器守护进程的内容,赶快来一起来看看吧。

垃圾标记算法

1 垃圾标记算法

引用计算法

根可达性分析

2 垃圾回收算法

按年代划分-分代算法

3 major gc、mini gc、mixed gc又是什么,怎么触发的?

4 垃圾回收器的介绍

Serial New 和 Serial Old

Stop The World

Parallel Scavenge 和 Parallel Old

ParNew 和 CMS

标记-清除

CMS 的回收流程

G1

G1的回收流程

G1 与 CMS 的区别

G1 中的三种垃圾回收模式

G1调优参数

-Xmn

5 Safe Point 和 Safe Region

OopMap(Ordinary Object Pointer,普通对象指针)

6 什么是 TLAB 和 PLAB ?

TLAB

堆内存是所有线程共享的,jvm 在并发的环境进行内存分配存在同步竞争,为了加快对象的分配创建,jvm 为每个线程分配了一个私有缓存区域(在Eden空间内),这就是 Thread Local Allocation Buffer。使用TLAB可以避免一系列的非线程安全问题,同时还能够提升内存分配的吞吐量。如果私有 TLAB 使用完,则使用全局的

PLAB

PLAB 即 Promotion Local Allocation Buffers,用在年轻代对象晋升到老年代时。在多线程并行执行 YGC 时,可能有很多对象需要晋升到老年代,为了加快内存分配,于是有了 PLAB

7 CMS、G1 新生代的 GC 如何避免全堆扫描?

常见的 GC 利用了记忆集,记录分代 GC中 老年代对象指向新年代对象的引用关系,以此避免扫描老年代对象区域

为什么 G1 不维护年轻代到老年代的记忆集?

8 CMS、G1 为了防止并发时的漏标分别用了什么手段?

三色标志法

漏标 CMS 解决方案-增量更新(Incremental Update)

增量更新要破坏的是第一个条件,当黑色对象插入新的指向白色对象的引用时,用写屏障将新插入的引用记录下来,等并发扫描结束之后,再以这些记录过的黑色对象为根,重新扫描一次

漏标 G1 解决方案-原始快照(Snapshot At TheBeginning,SATB)

SATB 要破坏的是第二个条件,当灰色对象要删除指向白色对象的引用时,用写屏障将这个要删除的引用记录下来,在并发扫描结束之后,再将这些记录过的引用关系中的灰色对象为根,重新扫描一次

9 什么是 logging write barrier

10 CMS 常见问题

最终标记阶段停顿时间过长问题

Promotion Failure

concurrent mode failure

CMS 垃圾收集器特有的错误,CMS 的垃圾清理和引用线程是并行进行的,如果在并行清理的过程中老年代的空间不足以容纳应用产生的垃圾(也就是老年代正在清理,从年轻代晋升了新的对象,或者直接分配大对象年轻代放不下导致直接在老年代生成,这时候老年代也放不下),则会抛出 concurrent mode failure

内存碎片问题

11 GC 事件和日志分析

GC 指标

GC事件分类

GC日志分析

需要对 GC 进行完整的监控,监控各年代占用大小、YGC 触发频率、Full GC 触发频率,对象分配速率等等

GCLocker Initiated GC

动态扩容引起的空间震荡

12 JVM 常用参数汇总

参数

说明

实例

-Xms

初始堆大小,默认物理内存的1/64

-Xms512M

-Xmx

最大堆大小,默认物理内存的1/4

-Xms2G

-Xmn

新生代内存大小,官方推荐为整个堆的3/8

-Xmn512M

-XX:NewRatio=n

设置新生代和年老代的比值。如: 3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4

-XX:NewRatio=3

-XX:SurvivorRatio=n

年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如: 8,表示Eden:Survivor=8:1:1,一个Survivor区占整个年轻代的1/10

-XX:SurvivorRatio=8

-Xss

线程堆栈大小,jdk1.5及之后默认1M,之前默认256k

-Xss512k

-XX:PermSize=n

永久代初始值,默认为物理内存的1/64

-XX:PermSize=128M

-XX:MaxPermSize=n

永久代最大值,默认为物理内存的1/4

-XX:MaxPermSize=256M

-verbose:class

在控制台打印类加载信息

-verbose:gc

在控制台打印垃圾回收日志

-XX:+PrintGC

打印GC日志,内容简单

-XX:+PrintGCDetails

打印GC日志,内容详细

-XX:+PrintGCDateStamps

在GC日志中添加时间戳

-Xloggc:filename

指定gc日志路径

-Xloggc:/data/jvm/gc.log

-XX:+DisableExplicitGC

关闭System.gc()

-XX:+UseBiasedLocking

自旋锁机制的性能改善

-XX:PretenureSizeThreshold

对象超过多大是直接在旧生代分配,默认值 0 ,单位字节

-XX:TLABWasteTargetPercent

TLAB 占eden区的百分比 默认值 1%

-XX:+CollectGen0First

fullGC 时是否先 youngGC 默认值 false

-XX:+PrintHeapAtGC

打印 GC 前后的详细堆栈信息

-XX:ParallelGCThreads=n

设置并行收集器时使用的CPU数。此值最好配置与处理器数目相等,同样适用于CMS

-XX:ParallelGCThreads=4

参数

说明

-XX:+UseSerialGC

年轻代设置串行收集器Serial

-XX:+UseParallelGC

年轻代设置并行收集器Parallel Scavenge

-XX:UseParNewGC

启用ParNew收集器

-XX:MaxTenuringThreshold

几次 youngGC 后会被分到老年代,默认是15次

-XX:MaxGCPauseMillis=n

年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值

参数

说明

-XX:+UseParallelOldGC

设置老年代为并行收集器ParallelOld收集器

-XX:+UseConcMarkSweepGC

设置老年代并发收集器CMS,且默认使用parNew作为新生代的垃圾回收

-XX+UseCMSCompactAtFullCollection

fullGC过后,开启对老年代的内存压缩,我们知道CMS使用的标记清除算法,会产生内存碎片,所以需要内存压缩

-XX:CMSFullGCsBeforeCompaction=n

经过几次FullGC后进行内存压缩,默认是 0

-XX:ParallelCMSThreads=n

CMS 过程并发线程数

-XX:+CMSParallelInitialMarkEnabled

为了减少 CMS 初始标志暂停的时间,开启并行标志

-XX:+CMSParallelRemarkEnabled

为了减少 CMS 第二次暂停的时间,开启并行remark

-XX:+CMSScavengeBeforeRemark

如果 CMS remark 暂停时间过长的话,可以开启该选项,强制remark之前开始一次minor gc,减少remark的暂停时间,但是在remark之后也将立即开始又一次minor gc

参数

说明

-XX:+UseG1GC

使用 G1 (Garbage First) 垃圾收集器

-XX:InitiatingHeapOccupancyPercent

老年代占用空间达到整堆内存阈值(默认45%),则执行新生代和老年代的混合收集(MixedGC),比如我们之前说的堆默认有2048个region,如果有接近1000个region都是老年代的region,则可能 就要触发MixedGC了

-XX:MaxGCPauseMillis

目标暂停时间(默认200ms) 也就是垃圾回收的时候允许停顿的时间

-XX:G1MixedGCCountTarget

在一次回收过程中指定做几次筛选回收(默认8次),在最后一个筛选回收阶段可以回收一 会,然后暂停回收,恢复系统运行,一会再开始回收,这样可以让系统不至于单次停顿时间过长

-XX:G1HeapWastePercent

(默认5%) 在混合回收时,一旦空闲出来的Region数量达到了堆内存的5%,此时就会立 即停止混合回收,意味着本次混合回收就结束了

-XX:ConcGCThreads=n

并发垃圾收集器使用的线程数量. 默认值随JVM运行的平台不同而不同

原文链接:/cscw/p/16304814.html?utm_source=tuicool&utm_medium=referral

以上就是关于如何开启gg修改器root_如何开启gg修改器守护进程的全部内容,感谢大家的浏览观看,如果你喜欢本站的文章可以CTRL+D收藏哦。

相关文章

热门下载

大家还在搜