SuperAPI AI 工具集

go-performance

通用与其它

查看项目

更新于 10-15 17:30

技能介绍

用途:分析并优化 Go 程序性能,适用于性能剖析、定位瓶颈、分析内存分配、检测内存泄漏等任务。

主要能力:工作流为确定剖析数据来源(文件、URL,或从测试/服务器生成)、用 go tool pprof 分析、输出可执行的优化建议。支持 CPU、堆、Goroutine 等剖析类型;可通过测试标志(-cpuprofile、-memprofile)或 HTTP 端点(/debug/pprof/profile、/debug/pprof/heap、/debug/pprof/goroutine)获取数据。

使用方式:生成剖析数据 go test -bench=. -cpuprofile cpu.prof -memprofile mem.prof;分析用 go tool pprof -top -cum cpu.prof 或 go tool pprof -http=:8080 cpu.prof 查看火焰图;内存分析 go tool pprof -alloc_space -top mem.prof(分配字节数)与 go tool pprof -alloc_objects -top mem.prof(分配次数/GC 压力);对比剖析 go tool pprof -base old.prof new.prof 以发现泄漏或性能回退;过滤结果 go tool pprof -focus='mypackage.*' cpu.prof。

适用场景与限制:宜先写基准测试以复现、确认和度量问题;优先处理高收益的快速优化;热点位于外部库时也可分析,源码在 $GOPATH;CPU 剖析需 30 秒以上才有意义数据;内存泄漏可对比两个时间点的堆剖析。编写基准测试时对每个性能问题保留基准、另建新函数与新基准对比,满意后替换旧函数与旧基准,提交信息中始终包含基准测试结果。