性能分析-pprof

pprof是个很好的golang性能分析工具,不用安装什么工具和环境就可以直接用

用法:

1,在需要做性能分析的方法内添加如下代码,并引入对应的包

     _ "net/http/pprof" // 引入 pprof 包

func test(){

    go func() {

        fmt.Println(http.ListenAndServe("http://localhost:6060", nil))

    }()

//业务代码

}

注解:

http://localhost:部署IP(本地代理直接用localhost),部署到环境可以不用,默认部署地址ip

6060:端口可自定义

2,依据部署环境判断是否需要开通6060端口

3,浏览器直接调用  http://localhost:6060/debug/pprof  即可看到pprof生成的各个指标:

     

  • allocs:查看过去所有内存分配的样本(历史累计)。
  • block:查看导致阻塞同步的堆栈跟踪(历史累计)。
  • cmdline: 当前程序的命令行的完整调用路径(从程序一开始运行时决定)。
  • goroutine:查看当前所有运行的 goroutines 堆栈跟踪(实时变化)。
  • heap:查看活动对象的内存分配情况(实时变化)。
  • mutex:查看导致互斥锁的竞争持有者的堆栈跟踪(历史累计)。
  • profile: 默认进行 30s 的 CPU Profiling,得到一个分析用的 profile 文件(从开始分析,到分析结束)。
  • threadcreate:查看创建新 OS 线程的堆栈跟踪。
  • trace:执行跟踪程序 详见:https://mp.weixin.qq.com/s/I9xS

4,如果只关注某一指标:如cpu可直接调用:

     http://localhost:6060/debug/pprof/profile?seconds=10

     seconds=10表示采集10s内的cpu占用,可以改为想要采集的时间

     注意:1,一旦开始运行 4 中的指标采集后,一定要触发想要采集的方法事件

                2,调用后生成profile文件,可用 go tool pprof profile命令打开,top查看,top默认查看                        前10条,想查看更多数据,直接topN,如前20:top20

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值