用户11716263
Go 服务里 time.Ticker 没 Stop 导致内存泄漏,排查到最后竟是 defer 写错了位置
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
用户11716263
社区首页
>
专栏
>
Go 服务里 time.Ticker 没 Stop 导致内存泄漏,排查到最后竟是 defer 写错了位置
Go 服务里 time.Ticker 没 Stop 导致内存泄漏,排查到最后竟是 defer 写错了位置
用户11716263
关注
发布于 2026-11-15 15:35:00
发布于 2026-11-15 15:35:00
22
0
举报
概述
线上一个 Go 写的推送服务跑了两天内存就涨到 1.8G,pprof 一看堆里全是 runtime.timer 和 time.Ticker 相关的对象。这个服务里每个 WebSocket 连接都会起一个 ticker 做心跳检测,连接断开时理论上 ticker 应该被回收,但实际并没有。代码长这样:go func() { t := time.NewTicker(30 * time.Second);
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
go
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档