golang协程在高并发后资源无法释放的问题

问题

因为业务问题,最近参考fasthttp写了一份协程池workerpool.go

在测试的时候突发奇思妙想来测一下有没有内存泄露的问题

凭着多年C语言的受苦经历,直觉告诉我,在模拟并发后内存应该恢复到并发前的水平

实际是,并发结束后内存居高不下,让我一度认为是我写的协程池内存泄漏了,经过反复测试后,我发现同一段代码,直接同步调用和使用goroutine调用,后者也出现了内存无法回收的问题(无论runtime.gc()多少次)

原因

互联网真好,这里的大佬个个都是人才,说话又好听,我超喜欢这里的!

直接上原文吧

瞬间高并发,goroutine执行结束后的资源占用问题

省流

撑大了,缩减不回去了

解决办法

洗洗睡吧

其他参考文章

为什么 Go 模块在下游服务抖动恢复后,CPU 占用无法恢复

runtime: maybe allgs should shrink after peak load

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值