golang
本站文章
入门
- https://go.dev
- 官方系列专题 (中文翻译)
- https://golang.org/doc/faq
- 官方Go指南
- How to Write Go Code
- golang 常用命令详解
- go tools命令大全
- Standard Go Project Layout
- GoDoc的使用
- godoc 介绍以及 Golang 注释规范
- The Uber Go Style Guide . Uber Go 语言编码规范中文版
- 如何写出优雅的 Go 语言代码, 项目目录结构
- go package name convention 命名规范
- Go 语言从新手到大神:每个人都会踩的五十个坑
- Go的方法集详解(360云计算)
- Go Modules 终极入门
- https://mehdihadeli.github.io/awesome-go-education/json/
- Go1.8 中的模糊测试 (中文)
进阶
- Golang中的空结构体 struct{}
- golang 在 runtime 中的一些骚东西
- 认识 m0 和 g0
- Go: g0,特殊的 Goroutine
- [译] Go开源项目BigCache如何加速并发访问以及避免高额的GC开销
- Go 高性能编程技法-腾讯技术工程
- 5 步让你的代码更快更高效
- net/http 库中常见的几种goroutine泄漏场景
- Golang异步编程方式和技巧
编译器&汇编
- Go 编译器概述
- Go 编译器介绍
- 走进 Golang 之编译器原理
- Go 语言机制之栈与指针
- golang汇编基础知识
- Go Assembly by Example
- Go 函数调用 ━ 栈和寄存器视角
- Golang汇编快速指南(官网翻译)
- Golang ASM简明教程
- 走进Golang之运行与Plan9汇编
- 腾讯:汇编是深入理解 Go 的基础
内存
- 图文带你了解 Go 中的分配
- 图解Go语言内存分配 、译文:Go 内存分配器可视化指南、
- go源码分析之内存池、 图解Golang的内存分配、
- Go: Memory Management and Allocation(中文版)
- 内存对齐
- 内存逃逸分析
- 详解 Go 逃逸分析
- Go 语言机制之逃逸分析
- The Go Memory Model
- Go的内存模型
- Go语言中的内存重排
- Memory Reordering
GC
- 粗线条话GC
- 认识 runtime.SetFinalizer
- Go 语言的垃圾回收演化历程:垃圾回收和运行时问题
- Go垃圾回收之三色标记算法
- Go 垃圾回收、gc垃圾回收器、 Golang 垃圾回收剖析
- 关于Golang GC的一些误解–真的比Java GC更领先吗?
- golang里gc相关的write barrier(写屏障)
- Go: Memory Management and Memory Sweep (中文版)
- Go: GC 是怎样监听你的应用的?
- Go: GC 怎么标记内存
- Golang垃圾回收 屏障技术
高级
- go tool trace
- [译]Go Stack Trace
- Scheduler Tracing In Go
- Go execution tracer
- Go 为什么这么“快”及GPM关系(腾讯技术工程)
- Go: 并发以及调度器亲和性
- Go: 调度器的任务窃取(Work-Stealing)
- Go 中 goroutine 是如何协作与抢占
- 图解 Go GOMAXPROCS 和实时更新
- Package pprof 官方教程
- Go 程序的性能调试问题
- Golang 大杀器之性能剖析 PProf
- 深入解析 Go 的信号处理—gsignal
- [译文 Go] 高级并发
- 译文 Go: sysmon, Runtime Monitoring
- 【译】GO的工作窃取调度程序、【译】goroutine调度器
- Go netpoller 网络模型之源码全面解析 及 sysmon 介绍
- 万字长文深入浅出 Golang Runtime
- golang 非协作式抢占
- 执行栈管理
- 在Go中大量使用内存的风险
- 如果理解 runtime.KeepAlive?
应用篇
- Go编程模式
- Go官方的限流器 time/rate 如何使用
- Uber 开源的依赖注入库 dig
- 优雅地关闭或重启 go web 项目
- 常见的几种信道死锁经典错误案例 / Golang限流器time/rate实现剖析
- golang range 与 iteration 之间的关系
- Golang中 Context包深入浅出/利用Context包控制多协程
- 如何在Go的函数中得到调用者函数名?
- Goroutine 并发调度模型深度解析之手撸一个高性能 goroutine 池
底层相关
- CPU缓存体系对Go程序的影响
- 锁、内存屏障与缓存一致性
- Golang和假共享(false sharing)
- cacheline 对 Go 程序的影响
- Go 协程堆栈设计进化之旅
- Golang堆栈指针
- Go Stack Trace
- 为什么 NUMA 会影响程序的延迟
- [Go] Time.Now函数CPU使用率异常