首页 > 解决方案 > golang如何使用工具查找ticker泄漏的地方?

问题描述

当没有业务请求时,我发现我的进程使用高 cpu

我用go-torch发现大部分cpu都浪费了runtime.timeproc

我认为这一定是因为time.NewTicker在某处泄漏(而不是停止),或者在 for 循环中创建代码

那么我怎样才能使用任何工具来找到它

事实上,我已经搜索过它,并且一直在关注defer ticker.Stop()

标签: goprofileticker

解决方案


我找到了找出泄漏代码的方法

在堆配置文件中,您可以键入:

go tool pprof http://xxx/debug/pprof/heap

tree time.NewTicker

它会显示代码创建的位置吗,如下所示:

在此处输入图像描述


推荐阅读