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

posted @ 2024-07-05 17:47  北京小小鸟  阅读(9)  评论(0)    收藏  举报