前言
众所周知,
gorourtine
的设计是Go
语言并发实现的核心组成部分,易上手,但是也会遭遇各种疑难杂症,其中goroutine
泄漏就是重症之一,其出现往往需要排查很久,有人说可以使用pprof
来排查,虽然其可以达到目的,但是这些性能分析工具往往是在出现问题后借助其辅助排查使用的,有没有一款可以防患于未然的工具吗?当然有,goleak
他来了,其由Uber
团队开源,可以用来检测goroutine
泄漏,并且可以结合单元测试,可以达到防范于未然的目的,本文我们就一起来看一看goleak
。
goroutine泄漏
不知道你们在日常开发中是否有遇到过goroutine
泄漏,goroutine
泄漏其实就是goroutine
阻塞,这些阻塞的goroutine
会一直存活直到进程终结,他们占用的栈内存一直无法释放,从而导致系统的可用内存会越来越少,直至崩溃!简单总结了几种常见的泄漏原因:
-
Gor