Go程序性能分析pprof
from: Go程序性能分析pprof
参考:
http://blog.golang.org/profiling-go-programs
http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html
Go语言的pprof是Google C++ profiler的移植,所以用法也差不多。这里简要记录步骤如下:
1. 代码
要在Go语言中开启profiling,可以参考以下代码:
- import (
- "runtime/pprof" // 引用pprof package
- "os"
- )
- func main() {
- f, _ := os.Create("profile_file")
- pprof.StartCPUProfile(f) // 开始cpu profile,结果写到文件f中
- defer pprof.StopCPUProfile() // 结束profile
- ...
- }
2. 运行
运行程序,生成profile文件
3. 分析
在命令行上执行:
go tool pprof [binary] [profile]
进入pprof环境后,可以用help命令查看帮助信息
最常用的命令如top10,可以看最耗时的function
这里详细解释一下top命令的输出格式,例如:
14 2.1% 17.2% 58 8.7% std::_Rb_tree::find
各字段的含义依次是:
1. 采样点落在该函数中的次数
2. 采样点落在该函数中的百分比
3. 上一项的累积百分比
4. 采样点落在该函数,以及被它调用的函数中的总次数
5. 采样点落在该函数,以及被它调用的函数中的总次数百分比
6. 函数名
Go程序性能分析pprof相关推荐
- Golang程序性能分析(三)用pprof分析gRPC服务的性能
这是Golang程序性能分析系列文章的最后一篇,这次我们的主要内容是如何使用pprof工具对gRPC服务的程序性能进行分析.关于gRPC这个框架的文章之前已经写过不少文章了,如果你对它还不太熟悉,不知 ...
- Golang程序性能分析(二)在Echo和Gin框架中使用pprof
前言 今天继续分享使用Go官方库pprof做性能分析相关的内容,上一篇文章:Golang程序性能分析(一)pprof和go-torch中我花了很大的篇幅介绍了如何使用pprof采集Go应用程序的性能指 ...
- golang程序性能分析
最近在使用GraphQL编写golang程序,但GraphQL框架在golang上的实践比较少,很多性能上的资料也不够全面.考虑到线上抗压的问题,笔者决定对自己开发的服务模块进行性能压测,评估下服务的 ...
- 程序性能分析及性能测试
这里所说的程序是指对外提供tcp/ip交互协议的服务性程序.网络程序性能分析很重要,比如随着网络请求流量越来越大,我们需要知道已部署的服务能不能满足需求.这里采用对网络服务程序进行建模的方法分析影响程 ...
- linux java火焰图_Linux程序性能分析和火焰图
Linux程序性能分析和火焰图 Linux程序的性能分析工具数量比较多,涉及到整个操作系统的方方面面,可能是开源的原因吧,相对于Windows来说丰富太多.其中应用分析性能方面Dtrace, Syst ...
- Golang程序性能分析(一)pprof和go-torch
前言 最近计划用三篇文章讲述一下Golang应用性能分析,本文是第一篇,先来介绍Go语言自带的性能分析库pprof怎么使用,后面两篇会讲解怎么用pprof对Echo或者Gin框架开发的应用进行性能分析 ...
- 【程序性能分析利器】Google Perf Tool 和 Valgrind 工具包简介
Google Perf Tools 的安装和使用 Gperf 工具包包含如下几个工具: 一个优化的内存管理算法-tcmalloc性能优于malloc. 一个用于CPU profile的工具,用于检测程 ...
- Go程序性能分析方法(一文全解)
文章目录 前言 采集方式 命令模式 调度图 监控方式 go-torch方法 FlameGraph工具 wrk压测工具(go-wrk) go-torch使用 Metricbeat 监控 自定义方法 前言 ...
- 【.NET程序性能分析】使用VS自带的工具分析.NET程序的性能
这篇博文给大家分享的是,如何使用VS自带的性能分析工具来分析我们编写的.NET程序,一边找出程序性能的瓶颈,改善代码的质量.在实际开发中,性能真的很重要,往往决定一个产品的生死~良好的用户体验的基础之 ...
最新文章
- 什么叫安装文件索引服务器,搜出精彩 玩转Windows 2008系统心得
- jQuery1.8 css模块评析
- Mysql取上一条,下一条
- Windows下配置单机Hadoop环境
- C#中实现视频播放器窗体程序(附源码下载)
- ReactNative 常见红屏黄屏及终端报错
- 1055 最长等差数列
- 贾跃亭又成功拿到6亿融资!九城与法拉第未来签约...
- 实际打印页码偏上_4个Excel打印小技巧,想怎么打就怎么打?
- bootstrap入门之Code代码显示
- 怎么用python下载网易云_使用Python实现下载网易云音乐的高清MV
- NE555定时器 学习 之 初步了解555
- java中undefined如何解决_js对undefined的处理
- 网页排版布局常见问题有哪些?
- WinForm登陆成功后跳转到主窗口
- 【NOI2011】阿狸的打字机
- 快排算法及常见两种常见优化方法
- 熊猫烧香超级搞笑广告版本
- 九宫格解锁的完全实现
- 数一英一408,超高分数线392分!上海交大计算机学硕