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,可以参考以下代码:

[cpp] view plaincopy
  1. import (
  2. "runtime/pprof"  // 引用pprof package
  3. "os"
  4. )
  5. func main() {
  6. f, _ := os.Create("profile_file")
  7. pprof.StartCPUProfile(f)  // 开始cpu profile,结果写到文件f中
  8. defer pprof.StopCPUProfile()  // 结束profile
  9. ...
  10. }

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相关推荐

  1. Golang程序性能分析(三)用pprof分析gRPC服务的性能

    这是Golang程序性能分析系列文章的最后一篇,这次我们的主要内容是如何使用pprof工具对gRPC服务的程序性能进行分析.关于gRPC这个框架的文章之前已经写过不少文章了,如果你对它还不太熟悉,不知 ...

  2. Golang程序性能分析(二)在Echo和Gin框架中使用pprof

    前言 今天继续分享使用Go官方库pprof做性能分析相关的内容,上一篇文章:Golang程序性能分析(一)pprof和go-torch中我花了很大的篇幅介绍了如何使用pprof采集Go应用程序的性能指 ...

  3. golang程序性能分析

    最近在使用GraphQL编写golang程序,但GraphQL框架在golang上的实践比较少,很多性能上的资料也不够全面.考虑到线上抗压的问题,笔者决定对自己开发的服务模块进行性能压测,评估下服务的 ...

  4. 程序性能分析及性能测试

    这里所说的程序是指对外提供tcp/ip交互协议的服务性程序.网络程序性能分析很重要,比如随着网络请求流量越来越大,我们需要知道已部署的服务能不能满足需求.这里采用对网络服务程序进行建模的方法分析影响程 ...

  5. linux java火焰图_Linux程序性能分析和火焰图

    Linux程序性能分析和火焰图 Linux程序的性能分析工具数量比较多,涉及到整个操作系统的方方面面,可能是开源的原因吧,相对于Windows来说丰富太多.其中应用分析性能方面Dtrace, Syst ...

  6. Golang程序性能分析(一)pprof和go-torch

    前言 最近计划用三篇文章讲述一下Golang应用性能分析,本文是第一篇,先来介绍Go语言自带的性能分析库pprof怎么使用,后面两篇会讲解怎么用pprof对Echo或者Gin框架开发的应用进行性能分析 ...

  7. 【程序性能分析利器】Google Perf Tool 和 Valgrind 工具包简介

    Google Perf Tools 的安装和使用 Gperf 工具包包含如下几个工具: 一个优化的内存管理算法-tcmalloc性能优于malloc. 一个用于CPU profile的工具,用于检测程 ...

  8. Go程序性能分析方法(一文全解)

    文章目录 前言 采集方式 命令模式 调度图 监控方式 go-torch方法 FlameGraph工具 wrk压测工具(go-wrk) go-torch使用 Metricbeat 监控 自定义方法 前言 ...

  9. 【.NET程序性能分析】使用VS自带的工具分析.NET程序的性能

    这篇博文给大家分享的是,如何使用VS自带的性能分析工具来分析我们编写的.NET程序,一边找出程序性能的瓶颈,改善代码的质量.在实际开发中,性能真的很重要,往往决定一个产品的生死~良好的用户体验的基础之 ...

最新文章

  1. 什么叫安装文件索引服务器,搜出精彩 玩转Windows 2008系统心得
  2. jQuery1.8 css模块评析
  3. Mysql取上一条,下一条
  4. Windows下配置单机Hadoop环境
  5. C#中实现视频播放器窗体程序(附源码下载)
  6. ReactNative 常见红屏黄屏及终端报错
  7. 1055 最长等差数列
  8. 贾跃亭又成功拿到6亿融资!九城与法拉第未来签约...
  9. 实际打印页码偏上_4个Excel打印小技巧,想怎么打就怎么打?
  10. bootstrap入门之Code代码显示
  11. 怎么用python下载网易云_使用Python实现下载网易云音乐的高清MV
  12. NE555定时器 学习 之 初步了解555
  13. java中undefined如何解决_js对undefined的处理
  14. 网页排版布局常见问题有哪些?
  15. WinForm登陆成功后跳转到主窗口
  16. 【NOI2011】阿狸的打字机
  17. 快排算法及常见两种常见优化方法
  18. 熊猫烧香超级搞笑广告版本
  19. 九宫格解锁的完全实现
  20. 数一英一408,超高分数线392分!上海交大计算机学硕

热门文章

  1. Spring3 表达式语言(SpEL)介绍
  2. 源码解读Mybatis List列表In查询实现的注意事项
  3. oracle的schema的基本概念及与User的区别
  4. OVS DPDK vhost-user详解(十三)
  5. leetcode算法题--子数组按位或操作
  6. leetcode算法题--预测赢家★
  7. 笔记:前端与后台交互
  8. Safari浏览器的智能跟踪预防工作原理
  9. 基于PSR-0编码规范开发一套PHP-MVC框架(一)
  10. 聊聊base62与tinyURL