做网站的叫云啥,四川城乡建设厅网站,微信安装到手机,盐城网站关键词优化性能分析工具pprof 一、测试程序介绍二、pprof工具安装与使用2.1 pprof工具安装2.2 pprof工具使用 资料链接#xff1a;
项目代码链接实验指南pprof使用指南
一、测试程序介绍
package mainimport (lognet/http_ net/http/pprof // 自… 性能分析工具pprof 一、测试程序介绍二、pprof工具安装与使用2.1 pprof工具安装2.2 pprof工具使用 资料链接
项目代码链接实验指南pprof使用指南
一、测试程序介绍
package mainimport (lognet/http_ net/http/pprof // 自动注册handler到http server, 方便通过http接口获取程序运行采样报告osruntimetimegithub.com/wolfogre/go-pprof-practice/animal
)func main() {log.SetFlags(log.Lshortfile | log.LstdFlags)log.SetOutput(os.Stdout)runtime.GOMAXPROCS(1) // 限制CPU使用数避免过载runtime.SetMutexProfileFraction(1) // 开启对锁调用的跟踪runtime.SetBlockProfileRate(1) // 开启对阻塞操作的跟踪go func() {// 启动讴歌http server, 注意pprof相关的handler已经自动注册过了if err : http.ListenAndServe(:6060, nil); err ! nil {log.Fatal(err)}os.Exit(0)}()for {for _, v : range animal.AllAnimals {v.Live()}time.Sleep(time.Second)}
}
二、pprof工具安装与使用
2.1 pprof工具安装
首先安装pprof工具
go get -d github.com/wolfogre/go-pprof-practice
cd /Path to go-pprof-practice
go build上述步骤将pprof编译成能够直接在windows系统中直接运行的.exe程序。 之后直接使用下述命令即可启动
./go-pprof-practice2.2 pprof工具使用
基本服务类型
类型描述备注allocs内存分配情况的采样信息可以用浏览器打开但可读性不高blocks阻塞操作情况的采样信息可以用浏览器打开但可读性不高cmdline显示程序启动命令及参数可以用浏览器打开这里会显示 ./go-pprof-practicegoroutine当前所有协程的堆栈信息可以用浏览器打开但可读性不高heap堆上内存使用情况的采样信息可以用浏览器打开但可读性不高mutex锁争用情况的采样信息可以用浏览器打开但可读性不高profileCPU 占用情况的采样信息浏览器打开会下载文件threadcreate系统线程创建情况的采样信息可以用浏览器打开但可读性不高trace程序运行跟踪信息浏览器打开会下载文件本文不涉及可另行参阅《深入浅出 Go trace》
具体后缀根据实际情况从上述类型中确定这里以CPU的profile为例
调出交互式界面
go tool pprof http://localhost:6060/debug/pprof/profiletop命令查看cpu使用情况 list定位使用量高的代码位置在本例中就是Eat程序 检查发现是这里的循环程序对CPU需求量较大定位到代码的第24行 web命令可视化 注针对其他的方法同样使用 top list web 大法进行错误定位。