golang cpu性能分析
一、分析程序的运行时间
(1)time指令(linux系统下)
time go run a.go
real:从程序开始到结束,实际上度过的时间
user:程序在用户态度过的时间
sys:程序在内核度过的时间
一般情况下,real>=user+sys
(2) /usr/bin/time 指令(linux系统下)
/usr/bin/time -v go run a.go
该指令下 可以看到 cpu占用率、 内存使用情况、 进程切换情况 、文件系统io、socket情况
二.golang下cpu性能分析
(1)在程序中引入 _ "net/http/pprof" ,并开启pprof监听
import _ "net/http/pprof"
程序开始
http.ListenAndServe("0.0.0.0:10000", nil)
程序结束
通过浏览器查看 CPU的信息和状态
http://127.0.0.1:10000/debug/pprof
注意,等程序运⾏⼀定时间,再点击profile⽂件⽣成(⾄少是30s)
(2)使用pprof
go tool pprof [binary] [profile] //binary二进制文件 profile 要分析的文件
top //查看当前profile文件的cpu使用率
flat 该函数⾃身代码的执⾏时⻓
flat% 该函数⾃身代码的执⾏时⻓占⽤CPU的耗时百分⽐
cum 代表的是该函数⾃身代码+所有调⽤的函数的执⾏时⻓
cum% 代表的是该函数⾃身代码+所有调⽤的函数的执⾏时⻓,占⽤CPU的总耗时百分⽐
sum% 每⼀⾏的flat%与上⾯所有⾏的flat%总和
(3)go tool pprof profile文件
启动要调试的程序,在另一个终端执行 go tool pprof http://localhost:10000/debug/pprof/profile?seconds=60
(4)可视化结构图
先在终端运行 go tool pprof [binary] [profile] ,然后输入web,浏览器会弹出一个可视化的图片。
注意事项:确保可重复、稳定的环境| 不要再共享硬件上做性能分析 | 注意省点模式和过热保护 | 不要使⽤虚拟机和云主机
建议:关闭电源、过热管理| 不要升级,确保环境的⼀致性 | 建议购买专业的硬件环境来性能测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix