memory-leak

Golang的内存泄漏

  • Channel 阻塞导致的 Goroutine 泄漏
  • 对象一直被引用,GC 无法回收
  • 切片(slice)扩容导致底层数组无法释放
  • 未关闭资源(间接导致内存泄漏)

简而言之,Go 的内存泄漏 = “对象因被意外引用而无法被 GC 回收”

当怀疑有内存泄漏时,可以使用 Go 的工具链—— pprof (Heap Profile):

模拟内存泄漏的web应用

go tool pprof http://localhost:6060/debug/pprof/heap p

top p

list main.main.func3 p


Comments