pprof使用

1. 简介

pprof 是 golang 自带的性能分析工具,可以查看web应用的运行状态,分析程序CPU,内存,goroutine等使用情况。

golang 针对不同使用场景,提供了以下两种方式开启pprof性能分析

runtime/pprof:底层的pprof,可以直接通过代码调用
net/http/pprof:对runtime/pprof的封装,提供http接口和页面,更方便的调用,前提是应用有提供http服务

net/http/pprof是对runtime/pprof的封装,提供了

2. 直接使用runtime/pprof

直接使用 runtime/pprof 库,将画像数据写入文件中

package main

import (
	"fmt"
	"os"
	"runtime/pprof"
)

func main() {
   
	//CPU Profile
	f, err := os.Create("./cpuprofile")
	if err != nil {
   
		fmt.Println(err)
		return
	}
	defer f.Close()
	pprof.StartCPUProfile(f)
	defer pprof.StopCPUProfile()

	//Memory Profile
	fm, err := os.Create("./memoryprofile")
	if err != nil {
   
		fmt.Println(err)
		return
	}
	defer fm.Close()
	pprof.WriteHeapProfile(fm)

	for i := 0; i < 100; i++ {
   
		fmt.Println("程序员麻辣烫")
	}
}

执行完后,会发现cpuprofile、memoryprofile文件,里面包含cpu、内存的画像。 runtime/pprof 直接支持这两种画像

2.1. 生成文件解析

  1. 使用 **pprof** 工具分析文件
    • 查看分析数据:运行 go tool pprof 命令来加载文件。例如:
go tool pprof cpu.pprof

这将启动一个交互式的 pprof 命令行界面,你可以在这里运行命令来查看不同的性能数据。

你可能感兴趣的:(Go学习笔记,golang)