mel*_*kes 19 debugging memory-leaks go
我目前正在尝试在Go代码中调试令人讨厌的内存泄漏.
我知道的:
pprof带-base标志)runtime.NumGoroutine())object = nil,内存将被垃圾收集(好!但现在我与其他使用此对象的go-routines进行数据竞争)我不知道的是:
感谢您的时间和建议!
小智 -2
您的代码是 404 未找到。
当你设置 object = nil 时。this 并没有立即被清除,但是当某些 goroutine 仍然持有它时,即使 gc 运行,该对象也会保持静止。
你问谁持有引用,使用这个 val 而不将其设置为 nil 的 goroutine 或者在循环中使用它的 goroutine 都会保留引用。
gc() 永远不会将引用的引用标记为黑色,那么它永远不会清晰