登录
首页 >  Golang >  Go问答

闭包是否会导致内存泄漏的问题在golang中?

来源:stackoverflow

时间:2024-02-11 18:51:23 160浏览 收藏

大家好,我们又见面了啊~本文《闭包是否会导致内存泄漏的问题在golang中?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

假设我有这个闭包函数

package main

type a struct {
    name string
}

func main() {
    s := func(name string) *a {
        return &a{
            name: name,
        }
    }("checkmate")

    s.name = "bbb"
}

我已经使用基准测试和 gcflags 进行了测试,这就是结果

cpu: intel(r) core(tm) i3-10110u cpu @ 2.10ghz
benchmarkmain-4         1000000000               0.4877 ns/op          0 b/op          0 allocs/op

去构建-gcflags“-m”

./main.go:8:7: can inline main.func1
./main.go:7:6: can inline main
./main.go:12:3: inlining call to main.func1
./main.go:12:3: &A{...} does not escape

这仍然是内存安全的吗?或者我的内存分配检查可能缺少某些内容?


正确答案


不,闭包不会泄漏内存。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《闭包是否会导致内存泄漏的问题在golang中?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>