1. 程式人生 > 其它 >go 定時器 佔用cpu過高問題方案解決

go 定時器 佔用cpu過高問題方案解決

技術標籤:程式調優golang

go 定時器 佔用cpu過高問題 方案解決


一、cpu 佔用過高

示例:在做工業邊緣閘道器的時候 發現定時器 cpu佔cpu過高

如圖:
在這裡插入圖片描述

二、用go tool pprof 找到原因 定時器 佔用cpu過高(go tool pprof 為效能調優工具 ,這裡不做贅述)

三、解決方案

時間論解決
時間論 原理:

tw, err := timewheel.NewTimeWheel(1 * time.
Second, 360) if err != nil { panic(err) } tw.Start() tw.AddCron(1 * time.Second, func() { fmt.Println("任務一00000") }) tw.AddCron(2*time.Second, func() { fmt.Println("任務二00000") })

結束之後

cpu 提升 n倍
在這裡插入圖片描述