package main
import (
"log"
_ "net/http/pprof" // 在代码中支持pprof只要加上这个包就行了
"os"
"runtime"
"runtime/pprof"
"runtime/trace"
"testPProf/data/block"
"testPProf/data/cpu"
"testPProf/data/goroutine"
"testPProf/data/intf"
"testPProf/data/mem"
"testPProf/data/mutex"
"time"
)
var cmds = []intf.Cmd{
&cpu.Cpu{},
&mem.Mem{},
&block.Block{},
&goroutine.Goroutine{},
&mutex.Mutex{},
}
func main() {
// 设置日志的输出格式标志:输出包含完整的文件路径和行号
log.SetFlags(log.Llongfile)
log.SetOutput(os.Stdout)
// 开启对锁调用的跟踪,不开启的话抓取不到(下同)
runtime.SetMutexProfileFraction(1)
// 开启对阻塞操作的跟踪
runtime.SetBlockProfileRate(1)
// 硬编码采集 cpu
f, err := os.Create("cpu.prof")
if err != nil {
log.Fatal("could not create CPU profile: ", err)
}
if err := pprof.StartCPUProfile(f); err != nil {
log.Fatal("could not start CPU profile: ", err)
}
defer pprof.StopCPUProfile()
// 硬编码采集 mem
memfile, err := os.OpenFile("mem.out", os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Fatalln(err)
}
// 开始采集
err = pprof.WriteHeapProfile(memfile)
defer memfile.Close()
// 硬编码采集 trace
tracefile, err := os.OpenFile("trace.out", os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Fatalln(err)
}
// 开始采集
err = trace.Start(tracefile)
defer trace.Stop()
defer tracefile.Close()
// 业务代码
//for {
for i := 0; i < 10; i++ {
for _, v := range cmds {
v.Run()
}
time.Sleep(time.Second)
}
/*
// 设置日志的输出格式标志:输出包含完整的文件路径和行号
log.SetFlags(log.Llongfile)
log.SetOutput(os.Stdout)
// 开启对锁调用的跟踪,不开启的话抓取不到(下同)
runtime.SetMutexProfileFraction(1)
// 开启对阻塞操作的跟踪
runtime.SetBlockProfileRate(1)
go func() {
http.ListenAndServe(":6060", nil) // 这里会阻塞,所以需要开一个协程去监听
}()
for i := 0; i < 200; i++ {
for _, v := range cmds {
v.Run()
}
time.Sleep(time.Second)
}
*/
}
没有合适的资源?快使用搜索试试~ 我知道了~
pprof学习go 语言测试程序
共12个文件
go:8个
out:2个
mod:1个
需积分: 5 0 下载量 18 浏览量
2024-07-23
18:53:36
上传
评论
收藏 131KB 7Z 举报
温馨提示
pprof学习go 语言测试程序
资源推荐
资源详情
资源评论
收起资源包目录
testPProf.7z (12个子文件)
testPProf
go.mod 28B
data
mutex
mutex.go 377B
intf
intf.go 59B
goroutine
goroutine.go 316B
cpu
cpu.go 215B
mem
mem.go 365B
block
block.go 200B
cpu.prof 2KB
mem.out 431B
constants
constants.go 87B
trace.out 756KB
main.go 2KB
共 12 条
- 1
资源评论
roshy
- 粉丝: 290
- 资源: 39
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功