简介本指南旨在通过深入了解 Go 垃圾收集器,帮助高级 Go 用户更好地了解应用程序的成本。它还提供了Go用户如何利用这些知识来提高应用程序的资源利用率的指导。 它并不假设你了解垃圾回收,但假设你熟悉Go语言。Go语言负责Go中 “值”的存储。在大多数情况下,Go语言开发人员根本不需要关心这些值存储

2021年终总结FYI:博客地址已由 https://blog.leonardwang.cn/更换为 https://blog.leonard.wang/ ,当前做了重定向,惠存,谢谢~终于在假期最后一天写完了简短的年终总结。技术从0到1实现了协程调度器了解了解释器的实现原理From Huawei

什么是FinalizerIn computer science, a finalizer or finalize method is a special method that performs finalization, generally some form of cleanup.Finaliz

从“零”开始实现Go1.17调度器并发整体设计Go调度器的主要函数为 schedule,但是由于版本迭代新功能的不断增加,该函数的流程也越来越复杂,本系列计划从一个最简单的调度器开始,一步一步添加功能,来实现完整的Go调度器,也便于大家理解每部分的作用。简单来说,Go从语言层面支持了协程,使用go

STW实现原理STW(Stop The World)是Go Runtime内部的一个方法,它的作用如它的名字所言,停止世界,在stopTheWorld调用返回后,有且仅有调用该方法的goroutine可以运行。用途主要在GC(垃圾回收)和runtime.GOMAXPROCS()中使用当然你可以可以通

原文地址导言计算机存储器主存物理内存虚拟内存虚拟内存页表地址翻译虚拟内存和高速缓存加速翻译&优化页表总结参考&延伸阅读导言虚拟内存是当今计算机系统中最重要的抽象概念之一,它的提出是为了更加有效地管理内存并且降低内存出错的概率。虚拟内存影响着计算机的方方面面,包括硬件设计、文件系统、共

编译器基础知识引用2020 Gopher China 史斌大佬的一张图简化一下,当前文章只关注语法分析和类型检查即可注:当前文章go版本 master 690a8c3fb1 ,应该是go1.17左右的版本。开始探究iota参考杨文大佬的文章带你开始探究 Go iota官方定义Within a co

在Go1.14之后,init函数进行了改动,每个package会按需生成一个package..inittask的符号该符号有三个字段state 该init的状态,0:未初始化,1:正在初始化中,2:初始化完成ndeps 该init所依赖的package个数nfns 本package中需要动态初始化

go version是什么?可以用来查看当前的go版本> go versiongo version go1.16.2 darwin/amd64在go1.13之后,还支持对二进制和目录进行操作The go version command now accepts arguments naming

GODEBUG 支持如下的选项,还有一个memprofileratevar dbgvars = []dbgVar{{"allocfreetrace", &debug.allocfreetrace},{"clobberfree", &debug.