美文网首页
Golang 使用pprof分析性能

Golang 使用pprof分析性能

作者: 合肥黑 | 来源:发表于2019-04-02 17:50 被阅读0次

参考
Golang 使用pprof分析goweb的性能问题

go的pprof可以用来对服务的性能进行检测,其中net/http/pprof包用来检测web服务器的相关的性能的分析,包括goroutine的数量,heap的大小问题。

一、简单使用
package main
import (
    "fmt"
    "log"
    "net/http"
    _ "net/http/pprof"
    "time"
)

func main() {
    // 开启pprof
    go func() {
        log.Println(http.ListenAndServe("localhost:6060", nil))
    }()
    go hello()
    select {}
}
func hello() {
    for {
        go func() {
            fmt.Println("hello word")
        }()
        time.Sleep(time.Millisecond * 1)
    }
}

如上所示,实现了一个简单函数,在for循环内部不停的创建go 并调用IO输出hello word。 在主函数的内部通过http.ListenAndServe(“localhost:6060”, nil) 监听6060端口,等待用户查看相关的性能信息。一定要注意包含_ “net/http/pprof”这个包。。 以上代码就实现了一个pprof监控性能的代码,我们只需要在浏览器中执行http://localhost:6060/debug/pprof/就会得到相对应的程序的信息。

image.png
由此可见,我们这个程序此时正有六个go协程正在运行。

1.在cmd中使用web命令
这里要先安装Graphviz,具体参考Graphviz安装及使用

C:\Users\lenovo>go tool pprof http://localhost:6060/debug/pprof/profile
Fetching profile over HTTP from http://localhost:6060/debug/pprof/profile
Saved profile in C:\Users\lenovo\pprof\pprof.samples.cpu.003.pb.gz
Type: cpu
Time: Apr 2, 2019 at 5:19pm (CST)
Duration: 30s, Total samples = 520ms ( 1.73%)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) web

浏览器会自动打开这个svg文件,也可以手动打开file:///C:/Users/lenovo/AppData/Local/Temp/pprof002.svg

2.上面使用web生成了svg文件,也可以使用callgrind生成out文件

(pprof) callgrind
Generating report in profile001.callgraph.out

这个文件在C:\Users\lenovo里找到了,安装Windows版的qcachegrind,然后使用qcachegrind.exe打开这个out文件。使用qcachegrind可以在各个函数之间自由跳转,查看函数内部的CPU占用情况,相对其他格式要更加灵活方便。

image.png

相关文章

  • pprof接口隐藏/认证

    pprof是golang提供的性能分析工具,这里就不过多介绍了。 使用方式很简单,导入pprof包即可 pprof...

  • Golang 使用pprof分析性能

    参考Golang 使用pprof分析goweb的性能问题 go的pprof可以用来对服务的性能进行检测,其中net...

  • golang性能优化之pprof及其火焰图

    1 pprof简介 golang代码的性能监控使用pprof包来做。pprof有两个包: runtime/ppro...

  • pprof 工具使用

    pprof golang pprof是golang的可视化和性能分析的工具。其提供了可视化的web页面,火焰图等更...

  • golang pprof 使用简介

    golang 的 pprof 是性能分析的神器,包括交互命令行和 UI 图像化的分析。主要来看看 pprof 支持...

  • Golang 大杀器之性能剖析 PProf

    Golang 大杀器之性能剖析 PProf 来源(转) 支持的使用模式: Interactive terminal...

  • golang pprof 性能分析工具

    性能优化是个永恒的话题,而很多时候我们在作性能优化的时候,往往基于代码上面的直觉,把所有能想到的优化都优化了一遍,...

  • Go 性能调优工具pprof

    介绍 问:如何对golang程序进行性能调优? 当然是使用golang中集成的大杀器pprof,来帮助我们从cpu...

  • go 性能剖析 PProf

    PProf是什么 pprof 是用于可视化和分析性能分析数据的工具 pprof 以 profile.proto 读...

  • golang性能分析go tool pprof

    在Go语言中,我们可以通过标准库的代码包runtime和runtime/pprof中的程序来生成三种包含实时性数据...

网友评论

      本文标题:Golang 使用pprof分析性能

      本文链接:https://www.haomeiwen.com/subject/utywbqtx.html