凌云时刻 · 技术
导读:在开发 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 {
                        
            
                关注
                打赏
            
            
        
        立即登录/注册
         
    
     
     
        微信扫码登录

