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函数

参考资料

使用dlv分析golang进程cpu占用高问题

posted on 2023-04-19 16:53  王景迁  阅读(149)  评论(0编辑  收藏  举报

导航