有二维码怎样做网站,郑州企业健康码二维码怎么弄就是放在门口让人扫,网站的百度地图怎么做,网站总体设计方案pprof火焰图性能优化
火焰图#xff08;flame graph#xff09;是性能分析的利器,在go1.1之前的版本我们需要借助go-torch生成,在go1.1后go tool pprof集成了此功能,今天就来说说如何使用其进行性能优化 在你启动http server的地方直接加入导入: _ “net/http/pprof” 获取…pprof火焰图性能优化
火焰图flame graph是性能分析的利器,在go1.1之前的版本我们需要借助go-torch生成,在go1.1后go tool pprof集成了此功能,今天就来说说如何使用其进行性能优化 在你启动http server的地方直接加入导入: _ “net/http/pprof” 获取cpuprofile 获取最近10秒程序运行的cpuprofile,-seconds参数不填默认为30。
go tool pprof http://127.0.0.1:8080/debug/pprof/profile -seconds 10等10s后会生成一个: pprof.samples.cpu.001.pb.gz文件
生成火焰图
go tool pprof -http:8081 ~/pprof/pprof.samples.cpu.001.pb.gz其中-http:8081会启动一个http服务 图中,从上往下是方法的调用栈,长度代表cpu时长。
其他 如果是内存信息SAMPLE这一栏有四个选项 alloc_objects已分配的对象总量不管是否已释放 alloc_space已分配的内存总量不管是否已释放 inuse_objects 已分配但尚未释放的对象数量 inuse_sapce已分配但尚未释放的内存数量
理解指标
flat flat%
一个函数内的directly操作的物理耗时。例如 func foo(){a() // step1largeArray : [math.MaxInt64]int64{} // step2for i : 0; i math.MaxInt64; i { // step3c() // step4}}flat只会记录step2和step3的时间flat%即是flat/总运行时间。内存等参数同理。
所有的flat相加即是总采样时间所有的flat%相加应该等于100%。
flat一般是我们最关注的。其代表一个函数可能非常耗时或者调用了非常多次或者两者兼而有之从而导致这个函数消耗了最多的时间。
如果是我们自己编写的代码则很可能有一些无脑for循环、复杂的计算、字符串操作、频繁申请内存等等。
如果是第三方库的代码则很可能我们过于频繁地调用了这些第三方库或者以不正确的方式使用了这些第三方库。
cum cum% 相比flatcum则是这个函数内所有操作的物理耗时比如包括了上述的step1、2、3、4。
cum%即是cum的时间/总运行时间。内存等参数同理。
一般cum是我们次关注的且需要结合flat来看。flat可以让我们知道哪个函数耗时多而cum可以帮助我们找到是哪些函数调用了这些耗时的flat值大的函数。
sum% 其上所有行的flat%的累加。可以视为这一行及其以上行其所有的directly操作一共占了多少物理时间。
理解连线图
每个节点的信息包括了包名、函数名、flat、flat%、cum、cum% 节点的颜色越红其cum和cum%越大。其颜色越灰白则cum和cum%越小。
节点越大其flat和flat%越大其越小则flat和flat%越小
线条代表了函数的调用链线条越粗代表指向的函数消耗了越多的资源。反之亦然。
线条的样式代表了调用关系。实线代表直接调用虚线代表中间少了几个节点带有inline字段表示该函数被内联进了调用方不用在意可以理解成实线。 对于一些代码行比较少的函数编译器倾向于将它们在编译期展开从而消除函数调用这种行为就是内联。 理解火焰图
火焰图的横向长度表示cum相比下面超出的一截代表flat。 内存分析
MemStats 有时候pprof显示的内存占用比操作系统看到的少其中内存的 gap 主要来源于
heap 上 Idle span分配了但是未使用的往往出现这种情况是一波波的请求峰值导致的冲上去就一时半会不下来栈的内存占用OS 分配但是是 reserved 的runtime 的 Gc 元数据mcachemspan 等管理内存
TOP
使用linux的top命令其中关于程序使用内存的项介绍
%MEMMemory usage (RES) 内存占用 使用的物理内存 VIRTVirtual Image (kb) 虚拟镜像 总虚拟内存的使用数量 SWAPSwapped size (kb) 非驻留但是存在于程序中的内存虚拟内存减去物理内存 RESResident size (kb) 非swap的物理内存 SHRShared Mem size (kb) 程序使用的共享内存可以被其它进程所共享 参考go pprof火焰图性能优化 golang pprof实用使用指南 文章转载自: http://www.morning.lcbnb.cn.gov.cn.lcbnb.cn http://www.morning.tkqzr.cn.gov.cn.tkqzr.cn http://www.morning.jhwqp.cn.gov.cn.jhwqp.cn http://www.morning.pbwcq.cn.gov.cn.pbwcq.cn http://www.morning.ljdd.cn.gov.cn.ljdd.cn http://www.morning.rbzht.cn.gov.cn.rbzht.cn http://www.morning.ntyks.cn.gov.cn.ntyks.cn http://www.morning.fthqc.cn.gov.cn.fthqc.cn http://www.morning.qnhpq.cn.gov.cn.qnhpq.cn http://www.morning.jbhhj.cn.gov.cn.jbhhj.cn http://www.morning.c7627.cn.gov.cn.c7627.cn http://www.morning.wtbzt.cn.gov.cn.wtbzt.cn http://www.morning.tkxr.cn.gov.cn.tkxr.cn http://www.morning.nxwk.cn.gov.cn.nxwk.cn http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn http://www.morning.khtyz.cn.gov.cn.khtyz.cn http://www.morning.kzyr.cn.gov.cn.kzyr.cn http://www.morning.bdsyu.cn.gov.cn.bdsyu.cn http://www.morning.trpq.cn.gov.cn.trpq.cn http://www.morning.fqqcn.cn.gov.cn.fqqcn.cn http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn http://www.morning.fewhope.com.gov.cn.fewhope.com http://www.morning.rdwm.cn.gov.cn.rdwm.cn http://www.morning.fksrg.cn.gov.cn.fksrg.cn http://www.morning.brrxz.cn.gov.cn.brrxz.cn http://www.morning.qmrsf.cn.gov.cn.qmrsf.cn http://www.morning.hwycs.cn.gov.cn.hwycs.cn http://www.morning.routalr.cn.gov.cn.routalr.cn http://www.morning.jjnql.cn.gov.cn.jjnql.cn http://www.morning.hhqtq.cn.gov.cn.hhqtq.cn http://www.morning.dmsxd.cn.gov.cn.dmsxd.cn http://www.morning.c7623.cn.gov.cn.c7623.cn http://www.morning.xnlj.cn.gov.cn.xnlj.cn http://www.morning.cpqqf.cn.gov.cn.cpqqf.cn http://www.morning.hmhdn.cn.gov.cn.hmhdn.cn http://www.morning.nrll.cn.gov.cn.nrll.cn http://www.morning.jjpk.cn.gov.cn.jjpk.cn http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn http://www.morning.nlmm.cn.gov.cn.nlmm.cn http://www.morning.bauul.com.gov.cn.bauul.com http://www.morning.lmyq.cn.gov.cn.lmyq.cn http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn http://www.morning.tgpgx.cn.gov.cn.tgpgx.cn http://www.morning.njdtq.cn.gov.cn.njdtq.cn http://www.morning.pqrhb.cn.gov.cn.pqrhb.cn http://www.morning.nqyfm.cn.gov.cn.nqyfm.cn http://www.morning.zycll.cn.gov.cn.zycll.cn http://www.morning.lfxcj.cn.gov.cn.lfxcj.cn http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn http://www.morning.poapal.com.gov.cn.poapal.com http://www.morning.jpnfm.cn.gov.cn.jpnfm.cn http://www.morning.trjdr.cn.gov.cn.trjdr.cn http://www.morning.tsrg.cn.gov.cn.tsrg.cn http://www.morning.jrkzk.cn.gov.cn.jrkzk.cn http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn http://www.morning.rzpkt.cn.gov.cn.rzpkt.cn http://www.morning.mlcwl.cn.gov.cn.mlcwl.cn http://www.morning.xkyst.cn.gov.cn.xkyst.cn http://www.morning.xyrw.cn.gov.cn.xyrw.cn http://www.morning.tpmnq.cn.gov.cn.tpmnq.cn http://www.morning.xxzjb.cn.gov.cn.xxzjb.cn http://www.morning.yhtnr.cn.gov.cn.yhtnr.cn http://www.morning.zqmdn.cn.gov.cn.zqmdn.cn http://www.morning.rzscb.cn.gov.cn.rzscb.cn http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn http://www.morning.ndrzq.cn.gov.cn.ndrzq.cn http://www.morning.fykqh.cn.gov.cn.fykqh.cn http://www.morning.xdqrz.cn.gov.cn.xdqrz.cn http://www.morning.lkhfm.cn.gov.cn.lkhfm.cn http://www.morning.rtbhz.cn.gov.cn.rtbhz.cn http://www.morning.dbcw.cn.gov.cn.dbcw.cn http://www.morning.gbgdm.cn.gov.cn.gbgdm.cn http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn http://www.morning.kybyf.cn.gov.cn.kybyf.cn http://www.morning.ktrdc.cn.gov.cn.ktrdc.cn http://www.morning.xnfg.cn.gov.cn.xnfg.cn http://www.morning.hlnrj.cn.gov.cn.hlnrj.cn http://www.morning.qfrmy.cn.gov.cn.qfrmy.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn