dlv分析GO高CPU应用
delve是golang推荐的go语言调试工具。
构造100% CPU应用
package main
import (
"time"
)
func add() {
i := 0
for {
i++
}
}
func main() {
go add()
time.Sleep(time.Hour)
}
根据top查找最高CPU的进程是29451
根据top -H -p 29451确认高CPU线程是29451
1 开启调试./dlv attach 29451
2 根据线程号29451找到对应的协程是17
3 输出协程17的堆栈信息
4 定位到add函数
参考资料