go profiling相关

一、官方文档
https://blog.golang.org/profiling-go-programs

$cd your_programe_dir
$go build
$./your_programe -cpuprofile=xxx.prof
$go tool pprof ./your_programe xxx.prof
Entering interactive mode (type "help" for commands)
(pprof) top 10
...

(pprof) web  生成svg文件并打开

注:mac默认用sublime打开,需要修改成chrome: http://blog.csdn.net/jiaolongdy/article/details/50945684



1.如果出现提示:
Cannot find dot, have you installed Graphviz?


需要用root用户安装Graphviz
$sudo brew install Graphviz


2.如果出现提示:
profile is empty


那是因为默认的pprof的采样频率是每秒100次,如果你的程序运行太快,在第一次采样前就结束了,就会出现这个情况。
要不就在程序里面加for循环或者sleep,要不就调整采样频率(见二)


二、
一开始,有人写了一个package,可以定制化profiing:
https://github.com/davecheney/profile


但是后来又更新了,具体原因如下:
http://dave.cheney.net/2014/10/22/simple-profiling-package-moved-updated


因为有些项目已经用了旧的API,所以作者直接给了个新package:

https://github.com/pkg/profile


import "github.com/pkg/profile"

func main() {
    defer profile.Start().Stop()
    ...
}


$go build
$./your_programe
2016/08/10 13:44:02 profile: cpu profiling enabled, /var/folders/sk/4bwcy4nj24s02zkgcw0194rm0000gn/T/profile756682622/cpu.pprof
...
$go tool pprof /var/folders/sk/4bwcy4nj24s02zkgcw0194rm0000gn/T/profile756682622/cpu.pprof


三、详细参数说明

https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值