golang testing 性能分析工具(pprof)
package main
import (
"net/http"
_ "net/http/pprof" // 导入pprof包来注册路由
"runtime"
"time"
"log"
)
func main() {
// 启用pprof HTTP服务
go func() {
log.Println(http.ListenAndServe("localhost:6060", nil))
}()
// 模拟一些工作负载
for {
// 这里我们故意不使用go关键字来避免并发执行,以便pprof能够准确捕获到CPU使用情况
for i := 0; i < 1e6; i++ {
// 做一些无意义的计算,只是为了占用CPU
_ = i * i
}
// 为了避免程序立即退出,我们让它每隔一段时间(比如1秒)执行一次
time.Sleep(1 * time.Second)
// 强制垃圾回收,以便我们可以观察内存使用情况(可选)
runtime.GC()
}
}
// 注意:为了运行上述代码,你需要导入"log"包

//访问方式
http://localhost:6060/debug/pprof/allocs?debug=1
浙公网安备 33010602011771号