前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Goroutine分析方法

Goroutine分析方法

作者头像
用户4700054
发布2022-08-17 13:19:19
2780
发布2022-08-17 13:19:19
举报

背景

  • 在日常开发项目中开了很多goroutine,每个gorouine执行不同的任务,有部分是高并发的业务针对延迟非常敏感,每个协程的资源分配情况以及每个协程调度情况,当前整个进程的runtime情况,通过调试很难分析。目前可以通过go trace工具来分析整个main的执行情况。

实例代码

代码语言:javascript
复制
package main

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

func business_func() {
	fmt.Println("do self business")
}
func main() {
	file, err := os.Create("./trace.dat")
	if err != nil {
		panic(err)
	}
	/******业务代码开始*********/
	business_func()
	/******业务代码结束*********/
	trace.Start(file)
	fmt.Println("start trace")
	trace.Stop()
	defer file.Close()
}

编译运行

代码语言:javascript
复制
[perrynzhou@ubuntu-dev ~/schedule]$ go build
[perrynzhou@ubuntu-dev ~/schedule]$ ls
go.mod  schedule  trace.go
[perrynzhou@ubuntu-dev ~/schedule]$ ./schedule 
start trace
[perrynzhou@ubuntu-dev ~/schedule]$ ls -l
total 1780
-rw-rw-r-- 1 perrynzhou perrynzhou      25 May  6 08:52 go.mod
-rwxrwxr-x 1 perrynzhou perrynzhou 1809003 May  6 08:58 schedule
-rw-rw-r-- 1 perrynzhou perrynzhou    1601 May  6 08:58 trace.dat
-rw-rw-r-- 1 perrynzhou perrynzhou     225 May  6 08:57 trace.go
[perrynzhou@ubuntu-dev ~/schedule]$

分析goroutine

  • 打开本地浏览器http://127.0.0.1:62483
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 实例代码
  • 编译运行
  • 分析goroutine
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档