凌云时刻 · 技术
导读:在开发 golang 程序过程中,go pprof 可以对我们所写的算法甚至整个应用程序做性能分析,帮助我们快速定位效率低或者资源消耗多的地方。Go 提供了 pprof 以及 trace 工具,本文分别介绍这两个工具的简要用法,希望大家能够快速了解以及快速入门 Go 的性能调优。
作者 | 谢久阳(昕希)
来源 | 凌云时刻(微信号:linuxpk)
先来一段演练
在给大家介绍枯燥的基础知识之前,先来看看一个简单的例子,这个例子简单粗暴,可以通过 pprof 快速定位协程阻塞问题。
package main
import (
"fmt"
"net/http"
_ "net/http/pprof"
"time"
)
func main() {
// 是否阻塞的开关
var flag bool
testCh := make(chan int)
go func() {
// pprof 监听的端口 8080
if err := http.ListenAndServe("0.0.0.0:8080", nil); err != nil {
fmt.Printf("%v", err)
}
}()
go func() {
// 永远为 false 的条件
if flag {
关注
打赏
立即登录/注册


微信扫码登录