当前位置: 首页 > news >正文

温州微网站开发当前网站开发的语言

温州微网站开发,当前网站开发的语言,如何自己搭建vps上外网,wordpress搭建商城网站pprof火焰图性能优化 火焰图(flame graph)是性能分析的利器,在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集成了此功能,今天就来说说如何使用其进行性能优化

  1. 在你启动http server的地方直接加入导入: _ “net/http/pprof”

  2. 获取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文件

  1. 生成火焰图
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%
相比flat,cum则是这个函数内所有操作的物理耗时,比如包括了上述的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 元数据,mcache,mspan 等管理内存;
TOP

使用linux的top命令,其中关于程序使用内存的项介绍:

%MEM:Memory usage (RES) 内存占用 使用的物理内存
VIRT:Virtual Image (kb) 虚拟镜像 总虚拟内存的使用数量
SWAP:Swapped size (kb) 非驻留但是存在于程序中的内存,虚拟内存减去物理内存
RES:Resident size (kb) 非swap的物理内存
SHR:Shared Mem size (kb) 程序使用的共享内存,可以被其它进程所共享


  • 参考:
  • go pprof火焰图性能优化
  • golang pprof实用使用指南
http://www.yayakq.cn/news/792324/

相关文章:

  • 旅游网站建设报价单网站开发亿玛酷出名5
  • 建立网站预算长春网站建设案例
  • 网站安全建设模板下载安装设计制作海报教案
  • 查网站备案名称个人网站设计背景图
  • 网站开发个人简介范文展馆设计流程
  • 一流的成都 网站建设做seo需要用到什么软件
  • 企业建设网站流程图广东省省的建设厅官方网站
  • 五个常见的电子商务网站软件技术就业方向
  • 部门网站管理建设工作汇报泰安千橙网络科技有限公司
  • 大型o2o网站开发时间教师廉政建设学校网站信息
  • 眼科医院网站设计怎么做6WordPress api发布接口
  • html怎么做静态网站东南亚购物网站排名
  • seo站点是什么意思教育视频培训网站建设
  • 成都做网站的公司如何分析网站
  • 网站建设属于技术开发吗创建网站的优势
  • 商务网站建设公网站是用什么做的
  • 新浪门户网站是谁做的淘宝店铺不允许发布网站建设了
  • html5快速建站做网站可以用海外空间吗
  • 开通微网站视频网站建设应该注意什么
  • 做网站界面多少钱wordpress获取菜单链接地址
  • 网站图片展示方式有哪些网站背景色代码
  • 网站建设询价单一般建设一个网站多少钱
  • 网站开发aichengkeji有哪些教做蛋糕的网站
  • 企业官网网站模板下载不了网站建设文案怎么写
  • 医院可以做网站吗汝州建设局网站
  • 建设信用卡申请进度查询官方网站郑州做网站找维诺
  • 免费asp地方门户网站系统企业信息平台
  • 中堂仿做网站徐州英才网最新招聘信息
  • 手机网站域名哪里注册西山网站建设
  • 怎样选择 网站建设青岛做网站的公司哪个好