• 柠柠
    2021-08-23
    因为被调用函数callee 存在1 个或多个caller,如果只有一个 caller,则累积时间相等,否则,单一的 caller 中统计的时间小于 callee 的累积调用时间。

    作者回复: 对的!

    
    3
  • 夏夜星语
    2021-09-26
    老师问一下,如果线上正在运行的一个Golang进程出现CPU占用过高的情况,这个时候怎么来不停止进程,也能分析出是哪个函数哪块代码出问题了,能做到嘛?

    作者回复: 可以看下这一讲中 《通过net/http/pprof生成性能数据文件》这种方式,对外暴露/profile接口,通过这个接口来实时获取性能文件,分析代码性能

    
    2
  • NING
    2022-09-27 来自广东
    老师好,请教一个问题,最近压测过程中发现一个奇怪的问题,压测过程中内存基本比较稳定,压测结束后,内存降低一段时间后,会慢慢增长,增长到压测高峰的位置,期间已经没有请求过来,golang 编译版本是1.16,后面内存一直保持压测的高峰值,用pprof分析,inuse_space 比 RSS低很多

    作者回复: 信息有点少,不太好定位哈,加老师微信,一起看看

    
    
  • yandongxiao
    2021-12-04
    总结: 性能调优的两个步骤:生成性能数据文件 & 性能分析。 性能数据文件有三种生成方式:benchmark、import package, net/http/pprof 包 性能分析主要包括:CPU性能分析、MEM性能分析 CPU采样:频率是10ms一次,采样一次调用堆栈; MEM采样:不管采样频率如何,只要字节被分配且数量足够,都会被采集到。 内存分析手段:采样图、火焰图、交互模式。推荐采用火焰图。 火焰图:调用关系从上到下,方格越大代表耗时越长。

    作者回复: 666

    
    
  • Realm
    2021-08-21
    问题1猜测:runtime.schedule 会让出cpu,会保留上下文环境,以便下次调度回来得到执行机会,会有额外的开销?还请老师指点!

    作者回复: 直接COPY读者的留言给你参考下:“因为被调用函数callee 存在1 个或多个caller,如果只有一个 caller,则累积时间相等,否则,单一的 caller 中统计的时间小于 callee 的累积调用时间。”

    
    
  • 静心
    2021-11-03
    这一节很实用,也比较细致全面。
    
    2
  • Benson_Geek
    2022-01-09
    再多写个go tool trace排查慢接口的就好了
    
    1
  • 随风而过
    2021-09-08
    pprof 工具神奇 赞
    
    