首页 > 免root版 > 用gg修改器要root吗_gg修改器要root吗?
用gg修改器要root吗_gg修改器要root吗?
  • 用gg修改器要root吗_gg修改器要root吗?

  • 大小:15.47MB日期:2024-04-19 15:59:58
  • 语言:简体中文系统:Android
绿色无毒,安全可靠!部分设备误报拦截请通过!

应用详情

大家好,今天小编为大家分享关于用gg修改器要root吗_gg修改器要root吗?的内容,赶快来一起来看看吧。

1、sysmon 有什么作用

sysmon 也叫监控线程,变动的周期性检查,好处:

2、三色标记原理

我们首先看一张图,大概就会对三色标记法有一个大致的了解:

三色标记法

原理

首先把所有的对象都放到白色的集合中

3、插入写屏障

golang 的回收没有混合屏障之前,一直是插入写屏障,由于栈赋值没有 hook 的原因,所以栈中没有启用写屏障,所以有 STW

golang 的解决方法是:只是需要在结束时启动 STW 来重新扫描栈。这个自然就会导致整个进程的赋值器卡顿,

所以后面 golang 是引用混合写屏障解决这个问题。混合写屏障之后,就没有 STW

4、删除写屏障

golang 没有这一步,golang 的内存写屏障是由插入写屏障混合写屏障过渡的。

简单介绍一下,一个对象即使被删除了最后一个指向它的指针也依旧可以活过这一轮,在下一轮 GC 中被清理掉

5、写屏障

Go 在进行三色标记的时候并没有 STW,也就是说,此时的对象还是可以进行修改。那么我们考虑一下,下面的情况:

三色标记

我们在进行三色标记中扫描灰色集合中,扫描到了对象 A,并标记了对象 A 的所有引用,这时候,开始扫描对象 D 的引用,

而此时,另一个 goroutine 修改了 D->E 的引用,变成了如下图所示:

三色标记过程

这样会不会导致 E 对象就扫描不到了,而被误认为白色对象,也就是垃圾,写屏障就是为了解决这样的问题。

引入写屏障后,在上述步骤后,E 会被认为是存活的,即使后面 E 被 A 对象抛弃,E 会被在下一轮的 GC 中进行回收,这一轮 GC 中是不会对对象 E 进行回收的。

6、混合写屏障

7、GC 触发时机

主动触发:调用 runtime.GC

被动触发

使用系统监控,该触发条件由 runtime.forcegcperiod 变量控制,默认为 2 分钟。当超过 2 分钟没有产生任何 GC 时,强制触发 GC

使用步调(Pacing)算法,其核心思想是控制内存比例。如 Go 的 GC 是一种比例 GC,下一次 GC 结束时的堆大小和上一次 GC 存活堆大小成比例。

GOGC 控制,默认 100,即 2 倍的关系,200 就是 3 倍。

当 Go 新创建的对象所占用的内存大小,除以上次 GC 结束后保留下来的对象占用内存大小。

8、Go 语言中 GC 的流程是什么

当前版本的 Go 以 STW 为界限,可以将 GC 划分为五个阶段

阶段

说明

赋值器状态

GCMark

标记准备阶段,为并发标记做准备工作,启动写屏障

STW
gcBgMarkPrepare

STWGCMark

扫描标记阶段,与赋值器并发执行,写屏障开启并发

并发
gcBgMarkRootPrepare

GCMarkTermination

标记终止阶段,保证一个周期内标记任务完成

STW
gcBgMarkTinyAllocs

STWGCoff

内存清扫阶段,将需要回收的内存还到堆中,写屏障关闭

并发
gcBgMarkWorker

GCoff

内存归还阶段,将过多的内存还给操作系统,写屏障关闭

并发
gcBgMarkDone
gcBgMarkTermination

9、GC 如何调优

通过 go tool pprofgo tool trace 等工具

更多 golang 干货,请关注我

以上就是关于用gg修改器要root吗_gg修改器要root吗?的全部内容,感谢大家的浏览观看,如果你喜欢本站的文章可以CTRL+D收藏哦。

相关文章

热门下载

大家还在搜