runtime
Go 标准库实验性包 arena 源码解析
arena 是 Go 标准库提供的一个实验性包,在 #51317 中提出,目的是在用户层提供一个自主可控的内存分配和释放方式,以便更细粒度的控制 GC arena 实现方式是提供一个 Arena 对象,用户可以通过此对象来进行内存分配和手动的内存释放,等这个包稳定以后 Go…
Go 运行时黑魔法
在 Go 程序启动 里提到过,当前 (被调度为 running) 协程的数据结构指针即 *g 是放在 TLS 上的。可以用一点汇编自行取到 *g (当然只是一个 uintptr 并非带类型的指针),以访问运行时协程数据。且 g/p/m 数据有关联,还可以做很多其他事情。 事实上现…
Go 汇编与 ABI
翻译 Go 官方的 ASM 简介和 Internal ABI 文档
Go 运行时之程序的启动
分析 amd64/linux 下 Go 可执行程序的启动流程