go性能分析工具pprof

pprof能做什么

性能分析

pprof 库是用于可视化和分析性能分析数据的工具,它以 profile.proto 读取分析样本的集合,并生成报告以可视化并帮助分析数据(支持文本和图形报告)

pprof有两个包:

net/http/pprof

runtime/pprof

其实net/http/pprof中只是使用runtime/pprof包来进行封装了一下,并在http端口上暴露出来

实例

package main

import (
	"fmt"
	"log"
	"net/http"
	_ "net/http/pprof"
	"time"
)

func main() {
	go func() {
		log.Println(http.ListenAndServe("localhost:6060", nil))
	}()
	go func() {
		for {
			fmt.Println("running...")
			time.Sleep(10 * time.Millisecond)
		}
	}()
	select {}
}

我们在本地6060端口开放了一个服务端,并在后台用一个循环来产生一些cpu消耗,开启后我们可以访问http://localhost:6060/debug/pprof/
如图
在这里插入图片描述
显示runtime的信息,如此时有9个协程在运行等,点击可以查看使用详细信息。在这里插入图片描述
当点击profile后,会自动生成一个profile文件并下载到本地。
(这里还可以直接 go tool pprof http://localhost:6060/debug/pprof/profile)
我们可以利用go tool pprof对这个文件进行分析。
pprof的交互界面
help有使用说明,这里不再一一介绍
在这里插入图片描述
我们输入gif,在当前目录生成一个gif图片
在这里插入图片描述

该图片是pprof对程序一段时间的cpu采样分析。
或者直接topN查看前N个消耗cpu最多的函数
在这里插入图片描述
借此我们可以了解cpu的调用情况帮助我们优化性能。方法不再一一介绍。
更多详细用法https://studygolang.com/pkgdoc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值