Go语言在什么情况下会发生内存泄漏 您所在的位置:网站首页 什么时候会发生内存泄漏现象 Go语言在什么情况下会发生内存泄漏

Go语言在什么情况下会发生内存泄漏

2024-07-13 02:25| 来源: 网络整理| 查看: 265

什么是内存泄漏?

预期很快能被释放的内存由于某些原因生命周期意外地被延长,导致预计能够立即回收的内存却长时间得不到回收,这就是内存泄漏。

Go语言中内存泄漏的原因

goruntine(协程)导致的内存泄漏(最主要的原因)

go语言中协程的创建非常简单,导致我们很多时候只关心协程的代码功能实现,而忽略了协程什么时候结束退出的问题。如果协程在执行时被阻塞而无法退出,就会导致协程的内存泄漏。一个协程的最少占用为2k的内存,在高并发场景下,如果存在大量的协程内存泄漏,则会导致系统严重的内存泄漏。

func finishReq(timeout time.Duration) r ob{ ch := make(chan ob) // ch := make(chan ob,1) go func() { result := fn() ch


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有