记一次golang的内存泄露 (2)

5) 发布修改后的代码,进行观察,通过观察发现系统内存可以正常回收与释放

记一次golang的内存泄露

【结论】

经过本次golang的调试发生,真正的原因是gc内存释放不够及时,存在滞后性(通过其他服务器观察发现,当压力小的时候,内存是可以正常释放的)。
所以最佳实践还是,在涉及到golang中使用大对象或者频繁创建内存的时候,要采用将对象设置能obj = nil 的方式,告知gc 我已经确实不再使用该内存块了,以便gc快速的回收,减少迭代gc。
另外,这种方式是可以应用到如java,c# 等语言身上的,它们都存在类似的问题。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwwjw.html