为了账号安全,请及时绑定邮箱和手机立即绑定

使用许多 goroutine 消耗内存

使用许多 goroutine 消耗内存

Go
慕容708150 2021-07-29 14:29:35
我试图检查 Go 将如何使用 100,000 个 goroutines 执行。我编写了一个简单的程序来生成许多例程,这些例程除了打印一些公告之外什么都不做。我将 MaxStack 大小限制为 512 字节。但是我注意到程序大小并没有随之减少。它消耗了大约 460 MB 的内存,因此每个 goroutine 大约消耗 4 KB。我的问题是,我们能否将 goroutine 的最大堆栈大小设置为低于“最小”堆栈大小(可能是 4 KB)。我们如何设置 Goroutine 开始的最小堆栈大小?下面是我用于测试的示例代码:package mainimport "fmt"import "time"import "runtime/debug"func main() {    fmt.Printf("%v\n", debug.SetMaxStack(512))    var i int    for i = 0; i < 100000; i++ {        go func(x int) {            for {                time.Sleep(10 * time.Millisecond)                //fmt.Printf("I am %v\n", x)            }        }(i)    }    fmt.Println("Done")    time.Sleep(999999999999)}
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 282 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信