【go-工具】pprof

pprof是什么

参考:https://wxsm.space/2023/go-pprof-note/
参考:https://juejin.cn/post/6961301143285104653

  • go语言的性能分析和可视化工具
    • 原理
      • 数据收集
        • 采样:默认10ms采样一次
        • 插桩:函数出入口添加代码记录函数信息
      • 数据展示
        • 文本
        • 图形化:火焰图
          • https://cizixs.com/2017/09/11/profiling-golang-program/
        • web界面
怎么用
package main

import (
	"log"
	"net/http"
	_ "net/http/pprof"
	"time"
)

func work(w http.ResponseWriter, r *http.Request) {
	start := time.Now()
	result := 0
	for i := 0; i < 100000000; i++ {
		result += i
	}
	duration := time.Since(start)
	log.Printf("Done in %v. Result: %d", duration, result)
	w.Write([]byte("Done"))
}

func main() {
	http.HandleFunc("/work", work)
	log.Println("Server is starting...")
	log.Fatal(http.ListenAndServe(":8080", nil))
}

  • _ “net/http/pprof”
    • 添加这个之后,会调用pprof的init函数

访问:http://localhost:8080/debug/pprof/

相关推荐

  1. go-工具pprof

    2024-03-27 10:16:02       36 阅读
  2. go 使用pprof查看内存分布

    2024-03-27 10:16:02       39 阅读
  3. Go 语言开发工具

    2024-03-27 10:16:02       61 阅读
  4. [go] 抽象工厂模式

    2024-03-27 10:16:02       48 阅读
  5. go实现工厂模式

    2024-03-27 10:16:02       37 阅读
  6. Go写一个缓存工具

    2024-03-27 10:16:02       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 10:16:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 10:16:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 10:16:02       87 阅读
  4. Python语言-面向对象

    2024-03-27 10:16:02       96 阅读

热门阅读

  1. 如何获取iOS手机上的APP崩溃日志?

    2024-03-27 10:16:02       35 阅读
  2. 22套软件研发文档模板下载(实用版)

    2024-03-27 10:16:02       42 阅读
  3. 【vue】computed和watch的区别和应用场景

    2024-03-27 10:16:02       44 阅读
  4. 机器学习:智能时代的核心引擎

    2024-03-27 10:16:02       46 阅读
  5. NIO与AIO

    NIO与AIO

    2024-03-27 10:16:02      36 阅读
  6. Element Plus快速入门及常用组件

    2024-03-27 10:16:02       40 阅读