随笔 - 173,  文章 - 0,  评论 - 0,  阅读 - 10万

非侵入式的分析工具。

go官方库自带,分为两种: 监控终端运行,监控服务运行。

一、采集command-监控终端运行

库为: runtime/pprof

1、收集运行信息

  引入包

复制代码
import "runtime/pprof"
var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")

file, _ := os.Create(*cpuprofile)
func main() {

  pprof.StartCPUProfile(f)
  defer pprof.StopCPUProfile()

  //下面需要尽量复杂的运算过程
} 
复制代码

  同时,需要将相关收集到的信息,写入到特定文件。

 

二、采集server-监控服务运行

库为: net/http/pprof

三、分析

  实时服务分析

    通过http监控服务,可以通过额外提供的http服务观察当前对外提供业务服务器性能。

    可以提供基础的监控信息

  监控文件分析

    无论是监控服务运行,还是监控终端运行,都可以生成对应的profile文件。

    文件分析,可以提供流程图、火焰图等分析方法

    go tool pprof --http=:8080 ~/self profile

    self profile就是上面main包中新建的文件。

    通过 go tool pprof分析自己采集到的profile文件。

 

posted on   黑熊一只  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示