非侵入式的分析工具。
go官方库自带,分为两种: 监控终端运行,监控服务运行。
一、采集command-监控终端运行
库为: runtime/pprof
1、收集运行信息
引入包
import "runtime/pprof"
var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")
file, _ := os.Create(*cpuprofile)
func main() {pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
//下面需要尽量复杂的运算过程
}
同时,需要将相关收集到的信息,写入到特定文件。
二、采集server-监控服务运行
库为: net/http/pprof
三、分析
实时服务分析
通过http监控服务,可以通过额外提供的http服务观察当前对外提供业务服务器性能。
可以提供基础的监控信息
监控文件分析
无论是监控服务运行,还是监控终端运行,都可以生成对应的profile文件。
文件分析,可以提供流程图、火焰图等分析方法
go tool pprof --http=:8080 ~/self profile
self profile就是上面main包中新建的文件。
通过 go tool pprof分析自己采集到的profile文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律