博客pprof分析

给blog程序做了个pprof分析。

先是安装  工具库

go get github.com/pkg/profile

然后再引入

import "github.com/pkg/profile"

再在入口中加入代码

defer profile.Start(profile.CPUProfile).Stop()

然后go build,ab跑需要的值。

再go proff ./app pprfo文件位置,输入web指令,看到全图,能按时间占用来分析网站的问题点在哪了。


就我这次分析,一共是151s/238s。

其中

http请求头解析 13s

http相应写入 26.8s

属于硬消耗,除非不使用net/http,否则基本无法避免和优化。

fd操作:

accept fd_unix 6.07s

destory fd_unix 9.76应该也是避不过。

msgpack的反序列化是27s,比我一直预期的其实要更好。

然后大头就是redis连接使用的70s了。

直接就占了总cpu消耗的1/3了。

看来只要用了 redis库,这个数量级就逃不掉了。

唯一能优化的地方是,为了能按分类优化,我加如了一个临时前缀。

这部分走的也是redis,占用了大概占用了一般的redis消耗,这是个很大的问题。


发布于
2017-12-13