专栏首页Golang开发Golang包——pprof

Golang包——pprof

概述

pprof 是用于可视化和分析性能分析数据的工具 CPU Profiling:CPU 分析,按照一定的频率采集所监听的应用程序 CPU(含寄存器)的使用情况,可确定应用程序在主动消耗 CPU 周期时花费时间的位置 Memory Profiling:内存分析,在应用程序进行堆分配时记录堆栈跟踪,用于监视当前和历史内存使用情况,以及检查内存泄漏 Block Profiling:阻塞分析,记录 goroutine 阻塞等待同步(包括定时器通道)的位置 Mutex Profiling:互斥锁分析,报告互斥锁的竞争情况

web界面查看
http://127.0.0.1:8080/debug/pprof/

image.png

cpu(CPU Profiling): HOST/debug/pprof/profile,默认进行 30s 的 CPU Profiling,得到一个分析用的 profile 文件 block(Block Profiling):HOST/debug/pprof/block,查看导致阻塞同步的堆栈跟踪 goroutine:HOST/debug/pprof/goroutine,查看当前所有运行的 goroutines 堆栈跟踪 heap(Memory Profiling): HOST/debug/pprof/heap,查看活动对象的内存分配情况 mutex(Mutex Profiling):HOST/debug/pprof/mutex,查看导致互斥锁的竞争持有者的堆栈跟踪 threadcreate:HOST/debug/pprof/threadcreate,查看创建新OS线程的堆栈跟踪

命令go tool

go tool pprof go tool trace

 go tool pprof http://localhost:8080/debug/pprof/profile\?seconds\=60
Fetching profile over HTTP from http://localhost:8080/debug/pprof/profile?seconds=60
Saved profile in /Users/baxiang/pprof/pprof.samples.cpu.001.pb.gz
Type: cpu
Time: Apr 3, 2019 at 12:20am (CST)
Duration: 1mins, Total samples = 1.08mins (107.69%)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof)  top10
Showing nodes accounting for 61.29s, 94.69% of 64.73s total
Dropped 55 nodes (cum <= 0.32s)
Showing top 10 nodes out of 43
      flat  flat%   sum%        cum   cum%
    20.93s 32.33% 32.33%     21.72s 33.55%  runtime.bulkBarrierPreWrite
    10.35s 15.99% 48.32%     10.35s 15.99%  runtime.memclrNoHeapPointers
     8.58s 13.26% 61.58%      8.58s 13.26%  runtime.usleep
     8.02s 12.39% 73.97%      8.82s 13.63%  runtime.scanobject
     6.19s  9.56% 83.53%      6.19s  9.56%  runtime.memmove
     3.60s  5.56% 89.09%     44.64s 68.96%  main.main.func1
     1.39s  2.15% 91.24%      1.39s  2.15%  runtime.mach_semaphore_timedwait
     1.07s  1.65% 92.89%      3.02s  4.67%  runtime.notetsleep
     0.59s  0.91% 93.81%      0.59s  0.91%  runtime.heapBits.bits (inline)
     0.57s  0.88% 94.69%      0.61s  0.94%  runtime.heapBitsSetType
(pprof) 

CUP分析

pprof.StartCPUProfile(file)
pprof.StopCPUProfile()

内存分析

pprof.WriteHeapProfile(file)

pprof

image.png

下载安装:

go get -u github.com/google/pprof

go-torch

go-torch是urbe开源的,现在这个项目已经废弃不维护了 直接建议使用pprof

image.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DOM

    概念: 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。 DOM的设计是以对象管理...

    羊羽shine
  • Java基础——反射

    Java除了基本类型其他都是class,包括interface,String,Object Runnable,Exception class的本质是数据类型T...

    羊羽shine
  • webpack

    webpack是一个现代JavasScript应用程序的模块打包器(module bunder) 官方网站https://www.webpackjs.com/...

    羊羽shine
  • 9月7日DUI平台发布在即,大咖云集,全面揭秘思必驰AI生态布局

    用户1737318
  • 有人说 Go 语言性能不行,大佬不服,使用 pprof 三步优化代码,性能堪比 C++

    这篇文章部分转自:https://www.cnblogs.com/qcrao-2018/p/11832732.html

    李艺
  • PPT怎么做?这5个技巧学会你就知道了

    很多人在初入职场的时候,接触到PPT都会比较头疼,PPT怎么做?这是很多人都想问的问题,明明自己有了很好的想法,但是就是操作不行啊,做出来的PPT总是差人强意,...

    高效办公
  • DeepLearning.ai学习笔记(三)结构化机器学习项目--week1 机器学习策略

    一、为什么是ML策略 ? 如上图示,假如我们在构建一个喵咪分类器,数据集就是上面几个图,训练之后准确率达到90%。虽然看起来挺高的,但是这显然并不具一般性,...

    marsggbo
  • python爬虫学习,python抓取百度音乐mp3歌曲

    python抓取百度音乐mp3歌曲,目前成功率不是100%,因为我每首歌只抓一遍,没有去判断抓取成功情况和链接速度,还有我取得歌曲名称的方式也有点不合适,对歌曲...

    python学习教程
  • Android 性能优化:使用 TraceView 找到卡顿的元凶

    前言 今天阅读了一篇文章 《Android性能优化(一)之启动加速35%》挺不错的,有兴趣的可以去看下。 作者在文中为了定位启动耗时的问题,使用了 TraceV...

    张拭心 shixinzhang
  • 综述:持续感知系统在边缘计算的应用

    随着边缘计算技术的兴起,各种各样的感知系统给人类带来了便捷高效的生活。以日常使用的手机为例,工程师为其置入了各种各样的传感器,并通过运行其上的机器学习算法,部署...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券