【Golang 面试 - 进阶题】每日 3 题(十五)
创始人
2024-11-04 00:05:30
0

✍个人博客:Pandaconda-CSDN博客

📣专栏地址:http://t.csdnimg.cn/UWz06

📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

43. Sysm on 有什么作用?

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

  • 释放闲置超过 5 分钟的 span 物理内存;

  • 如果超过 2 分钟没有垃圾回收,强制执行;

  • 将长时间未处理的 netpoll 添加到全局队列;

  • 30 向长时间运行的 G 任务发出抢占调度(超过 10ms 的 g,会进行 retake);

  • 收回因 syscall 长时间阻塞的 P;

44. 三色 标记原理

  

原理:

三色标记算法(Tri-color Mark and Sweep Algorithm)是垃圾回收算法中常用的一种,也是 Go 语言中垃圾回收器采用的算法之一。

三色标记算法的基本思路是将内存中的对象分为三种状态:白色(未访问)、灰色(已访问,但还未处理)、黑色(已访问,且已处理),并按照一定的顺序遍历所有对象,标记出所有可达的对象,最终清除不可达的对象。

具体来说,三色标记算法分为以下几个步骤:

  1. 初始时,所有对象都是白色,加入一个 “根集合”(root set),根集合是一组已知可达对象的集合,如全局变量、函数调用栈等。

  2. 将根集合中的所有对象标记为灰色,并加入一个 “灰色集合”(gray set)中。

  3. 从灰色集合中取出一个灰色对象,遍历其引用的所有对象。如果某个对象是白色,将其标记为灰色,并加入灰色集合中;如果某个对象是灰色,不做处理;如果某个对象是黑色,也不做处理。

  4. 将该灰色对象标记为黑色,并从灰色集合中移除。

重复步骤 3 和 4,直到灰色集合为空。

此时所有可达对象都被标记为黑色,所有不可达对象都是白色。将所有白色对象标记为垃圾,并回收其占用的内存空间。

在 Go 语言中,三色标记算法是垃圾回收器采用的一种算法,其中还包括了其他的优化算法,如并发标记(Concurrent Mark)和并发清除(Concurrent Sweep)。Go 的垃圾回收器会在程序运行时自动启动,不需要手动管理内存,大大减少了程序员的工作量。

 45. 写屏障

在 Go 语言的垃圾回收机制中,写屏障(Write Barrier)是一种机制,用于保证内存对象在进行垃圾回收过程中的正确性。写屏障是通过在程序运行过程中对写操作进行监测来实现的。如果一个指针变量被修改为指向一个新的内存对象,写屏障会将被修改的指针变量所指向的对象标记为 “灰色” 状态,并将新指向的对象标记为 “黑色” 状态,以确保该对象不被误判为垃圾对象。在垃圾回收过程中,只有标记为 “黑色” 状态的对象才能被视为可达对象,而未被标记或者被标记为 “灰色” 状态的对象则被认为是不可达对象,可以被回收。

在 Go 语言中,写屏障是由垃圾回收器来实现的,Go 编译器会在需要使用写屏障的地方插入相应的代码。具体来说,当一个指针变量被修改为指向一个新的对象时,Go 编译器会在生成的汇编代码中插入一个钩子(Hook)函数,这个钩子函数会在对象头中设置一个标志位,表示该对象需要被扫描,以便在垃圾回收的过程中正确地标记该对象。

需要注意的是,写屏障虽然可以提高垃圾回收的准确性,但也会带来一定的性能开销,因为需要在写操作时对对象进行监测和处理。因此,在 Go 语言中,写屏障只在必要的情况下才会被触发。同时,也可以通过一些手段来减少写屏障的触发次数,如尽可能减少对象的复制和移动,或者将一些对象的内存布局重新调整,以减少垃圾回收时的复杂度。

相关内容

热门资讯

透视有挂(wPK)微扑克全自动... 透视有挂(wPK)微扑克全自动机器人(透视)详细辅助微扑克教程(一直有挂)1、下载好微扑克全自动机器...
透视最新(AAPoKER)aa... 透视最新(AAPoKER)aapoker猫腻(透视)一直有挂(详细辅助教你教程);1、游戏颠覆性的策...
透视苹果版!德扑ai智能机器人... 透视苹果版!德扑ai智能机器人,(德州之星)切实存在有挂(详细辅助wpk教程);暗藏猫腻,小编详细说...
透视实锤(wpK)wpk德州透... 透视实锤(wpK)wpk德州透视辅助(透视)详细辅助黑科技教程(总是有挂)在进入wpk德州透视辅助辅...
透视辅助(aapOKER)aa... 透视辅助(aapOKER)aapoker有外挂(透视)原来真的有挂(详细辅助透明挂教程);1、许多玩...
透视存在!德扑数据软件,(来玩... 透视存在!德扑数据软件,(来玩德州)果然是真的有挂(详细辅助攻略教程)1、许多玩家不知道德扑数据软件...
透视教学(Wpk)wpk有透视... 透视教学(Wpk)wpk有透视辅助(透视)详细辅助详细教程(一直是有挂)1、构建自己的wpk有透视辅...
透视规律(AAPOKEr)aa... 透视规律(AAPOKEr)aapoker辅助工具存在(透视)一贯有挂(详细辅助安装教程)1、aapo...
透视总结(微扑克)微扑克wpk... 透视总结(微扑克)微扑克wpk透视辅助(透视)详细辅助安装教程(本来真的有挂)微扑克wpk透视辅助辅...
透视神器!德州微扑克辅助,(线... 透视神器!德州微扑克辅助,(线上德州)本来是有挂(详细辅助必备教程)1、该软件可以轻松地帮助玩家将德...