golang计算单个协程占用内存
生活随笔
收集整理的這篇文章主要介紹了
golang计算单个协程占用内存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package mainimport ("fmt""runtime""sync"
)func getGoroutineMemConsume() {var c chan intvar wg sync.WaitGroupconst goroutineNum = 1e4 // 1 * 10^4memConsumed := func() uint64 {runtime.GC() //GC,排除對象影響var memStat runtime.MemStatsruntime.ReadMemStats(&memStat)return memStat.Sys}noop := func() {wg.Done()<-c //防止goroutine退出,內存被釋放}wg.Add(goroutineNum)before := memConsumed() //獲取創建goroutine前內存for i := 0; i < goroutineNum; i++ {go noop()}wg.Wait()after := memConsumed() //獲取創建goroutine后內存fmt.Printf("%.3f KB\n", float64(after-before)/goroutineNum/1000)
}
?
總結
以上是生活随笔為你收集整理的golang计算单个协程占用内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang中的嵌套
- 下一篇: golang中的执行规则