首页 > 其他分享 >性能刨析与事件追踪

性能刨析与事件追踪

时间:2022-09-26 17:12:18浏览次数:45  
标签:函数 pprof 刨析 性能 tool go CPU 追踪

2.7性能刨析与事件追踪
2.7.1pprof性能刨析
性能分析工具:pprof,可以捕捉多维度的运行状态数据,也是CPU分析器,是gperftools工具的一个组件
·runtime/pprof:采集程序的运行数据进行分析
·net/http/pprof:采集HTTP服务器的运行数据进行分析
(1)pprof能做:·CPU分析
·内存分析
·阻塞分析
·互斥锁分析
(2)使用方式:
1)web形式,导入net/http/pprof包,并在主函数中添加一下代码
2)profile交互式终端文件形式:go tool pprof[binary][source]//数据分析
·lbinary:应用的二进制文件,用来解析各种符号
·lsource:表示profile数据的来源,可以是本地的文件,也可以是HTTP地址

flag.Type()命令行参数的解析,Type包含Int、String、Bool 等,返回值为一个相应类型的指针
flag.Parse() 来对命令行参数进行解析。
log.Fatal () 在控制台屏幕上打印带有时间戳的指定消息。
pprof.StartCPUProfile()在被调用的时候,先会去设定 CPU 概要信息的采样频率,并会在单独的 goroutine 中进行 CPU 概要信息的收集和输出。注意,StartCPUProfile函数设定的采样频率总是固定的,即:100赫兹

对以上代码进行CPU分析,执行
go run main.go --cpuprofile=cpu.prof
会在当前路径下生成cpu.prof文件,然后执行
go tool pprof main.go cpu.prof
go tool pprof http://localhost:8801/debug/pprof/profile?seconds=60追踪上面代码60s内CPU的消耗情况,执行命令后,需要等待60s,默认进入pprof交互式命令行中,topN查询程序CPU消耗最大的调用
flat:给定函数上的运行耗时
flat%:给定函数上的CPU运行耗时占比
sum%:给定函数累计使用CPU总比例
cum:当前函数加上它们之前的调用运行总耗时
cum%:当前函数加上它们之前的调用CPU运行耗时占比

(3)火焰图分析
安装pprof原生工具:go get -u github.com/google/pprof
启动火焰图可视化工具:pprof -http=:8080 profile文件名

2.7.2trace事件追踪
trace事件追踪步骤:
·编译并运行既定好的数据文件
·执行go tool trace myTrace.out命令

标签:函数,pprof,刨析,性能,tool,go,CPU,追踪
From: https://www.cnblogs.com/askill/p/16731624.html

相关文章

  • RocketMQ性能优化【实战笔记】
    转发:https://cloud.tencent.com/developer/article/1496414目录一、系统优化1.最大文件数2.系统参数调整二、RocketMQ性能调优1.开启异步刷盘2.开启堆外内存设置3......
  • 在强化学习算法性能测试时使用训练好的模型运行游戏,此时如何控制实时游戏画面的帧数
    问题:在强化学习算法性能测试时使用训练好的模型运行游戏,此时如何控制实时游戏画面的帧数?  ========================================  看到很多训练好的模型......
  • 性能测试监控nmon安装和问题解决
      一.安装nmon1.确认linux的版本,选择合适的安装包uname-a查看操作系统信息lsb_release-a或者cat/etc/redhat-release查看linux发行版本2.下载安装nmon下载:由......
  • 聊聊接口性能优化的 11 个小技巧
    前言接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。该问题说简单也简单,说复杂也复杂。有时候,只需加个索引就能解......
  • 为什么需要更强性能的PC?
    这两天NV发布了4090,看起来性能很强。价格1万3千块左右,感觉并不是很贵。相比于4090的性能来说。大学的时候,我组过一台台式机,用的是1060的显卡。我寻思着,现在要不要再组一......
  • 关于 React 性能优化的那些事
    我报名了金石计划的第一个挑战——瓜分10万奖池,这是我的第一篇文章,点击查看活动详情要明确性能优化的原理,需要了解它的前世今生,需要回答以下问题:React如何渲染页面?......
  • 利用rabbitmq异步实现来提升程序处理性能
    近期交易系统出款交易量猛增,从skywalking监控平台查看程序调用链路(trace),发现在调用外部三方接口的方法会耗时将近一半。鉴于出款交易在业务上是异步处理的,所以,商定考虑将调......
  • 性能测试之jvm
    浅谈一下在性能测试中,遇到java应用出现OOM时(内存泄漏,FGC),作为非专业java开发的测试人员如何去分析,以及调试jvm参数。在开始进行测试前,先对jvm内存分配有一个大概的了解.......
  • nginx性能监控
    nginx自带监控模块,需要在nginx编译安装时加入监控模块。 1.编译安装时加入监控模块ngin编译安装时,加入编译参数为:--with-http_stub_status_module。如下所示:./co......
  • JAVA + LR实现apache流媒体的性能测试
    一个视频点播系统,使用apache实现的流媒体服务器。其实准确的说叫做伪流(HTTPPseudo-Streaming),基本原理和概念自行了解吧。让我简单的描述就是仍然是HTTP下载,播放器播放本地......