年度归档: 2023 年

2 篇文章

【Golang八股】GC机制
触发时机 主动:调用 runtime.GC 被动: 由系统监控,两分钟没有 GC 就强制 GC 所分配的堆大小达到阈值 V1.3 之前-标记清除法 步骤 暂停程序,对可达和不可达对象进行分类 开始标记 清除未标记的 停止暂停 缺点:需要 STW,标记时需要扫描整个 heap,清除时会产生 heap 在 v1.3 做了优化,清除的时候不需要 STW …
【Golang八股】GMP要点
go 1.1 之前时 GM 模型,性能不好: M 从全局 Goroutine 队列加锁获取 G,创建了 G 也要加锁放回去,且资源是全局的(如堆栈内存等),容易造成锁竞争 M 转移 G 没有把资源利用最大化,比如在 M1 上运行 G1 创建 G2,为了继续运行 G1,需要把 G2 放到别的 M 上,而 G2 和 G1 是相关的,寄存器中保存了 G1…