Go语言垃圾回收机制详解
1. 垃圾回收周期分析
在Go语言中,我们可以通过设置环境变量 GODEBUG=gctrace=1 来跟踪垃圾回收(GC)的详细信息。以下是一段示例输出:
$ GODEBUG=gctrace=1 go run gColl.go
gc 1 @0.004s 2%: 0.008+0.34+0.042 ms clock, 0.081+0.063/0.51/0.18+0.42 ms cpu, 3->3->0 MB, 4 MB goal, 0 MB stacks, 0 MB globals, 10 P
gc 2 @0.009s 3%: 0.097+0.93+0.049 ms clock, 0.97+0.20/1.0/0.84+0.49 ms cpu, 3->3->1 MB, 4 MB goal, 0 MB stacks, 0 MB globals, 10 P
...
gc 20 @45.111s 0%: 0.095+0.26+0.009 ms clock, 0.95+0/0.38/0+0.092 ms cpu, 95->95->0 MB, 95 MB goal, 0 MB stacks, 0 MB globals, 10 P
mem.Alloc: 121200
mem.TotalAlloc: 1500245792
mem.HeapAlloc: 121200
mem.NumGC: 20
这里一共完成了20次垃圾回收周期。以 gc 20 为例,输出中的 95->95-&g
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



