首页 > 其他分享 >Golang 大杀器之trace

Golang 大杀器之trace

时间:2023-11-13 15:36:03浏览次数:40  
标签:profile trace err Golang 大杀器 file go log

需要下载graphviz

package main

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

func main() {
	file, err := os.Create("trace.out")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()
	err = trace.Start(file)
	if err != nil {
		log.Fatal(err)
	}
	defer trace.Stop()
	ch := make(chan string)
	go func() {
		ch <- "Go"
	}()

	<-ch
}

go run main.go
go tool trace  trace.out

输出

2023/11/13 15:10:36 Parsing trace...
2023/11/13 15:10:36 Splitting trace...
2023/11/13 15:10:36 Opening browser. Trace viewer is listening on http://127.0.0.1:54898

View trace:查看跟踪
Goroutine analysis:Goroutine 分析
Network blocking profile:网络阻塞概况
Synchronization blocking profile:同步阻塞概况
Syscall blocking profile:系统调用阻塞概况
Scheduler latency profile:调度延迟概况
User defined tasks:用户自定义任务
User defined regions:用户自定义区域
Minimum mutator utilization:最低 Mutator 利用率

标签:profile,trace,err,Golang,大杀器,file,go,log
From: https://www.cnblogs.com/qcy-blog/p/17829254.html

相关文章

  • Golang大杀器之pprof
    需要下载graphvizpackagemainimport( "math/rand" "os" "runtime/pprof" "time")funcgenerate(nint)[]int{ rand.Seed(time.Now().UnixNano()) nums:=make([]int,0) fori:=0;i<n;i++{ nums=append(......
  • 使用tracemalloc对python内存进行分析
    1.通过两次快照对importtracemalloc#这个是python自带的defon_start():'''需要测试的代码'''passtracemalloc.start()snapshot1=tracemalloc.take_snapshot()on_start()#需要测试的代码snapshot2=tracemalloc.take_snapshot(......
  • Golang 中的 Context 包
    Golang中的Context包原创 Slagga 技术的游戏 2023-11-1212:28 发表于广东收录于合集#Golang89个简介今天,我们将讨论Go编程中非常重要的一个主题:context 包。如果你现在觉得它很令人困惑,不用担心—在本文结束时,你将像专家一样处理context!想象一下,你在一个......
  • golang http rpc
    server端:packagemainimport( "errors" "log" "net" "net/http" "net/rpc")typeArgsstruct{ A,Bint}typeQuotientstruct{ Quo,Remint}//定义typetypeArithintfunc(t*Arith)Multiply......
  • Golang布隆过滤器升级版
    作用:平常使用的布隆过滤器可以用来过滤Redis空数据,避免缓存穿透。升级点:将原本的bool数组位更改为int数组,实现便于删除操作的场景。代码如下:packagemainimport( "fmt")//BloomFilter布隆过滤器typeBloomFilterstruct{ bitArray[]int//升级版结构哈希所落位置+......
  • 想入坑golang web,向大佬们请教些问题?
    当你准备入坑Go语言的Web开发时,以下是一些常见的问题,你可以向大佬们请教:如何设置和启动一个GoWeb服务器?Go语言有哪些常用的Web开发框架?它们之间有什么区别和优劣势?Go语言中的路由是如何实现的?如何处理不同的HTTP请求方法和URL参数?Go语言如何处理请求和响应,以及如何......
  • golang json 序列化、反序列化 字符串反序列化
    golangjson序列化、反序列化字符串反序列化在使用Golang进行开发时,经常会遇到需要将一段JSON字符串进行序列化和反序列化的情况。JSON是一种轻量级数据交换格式,常用于前后端数据传输、存储等场景。Golang提供了内置的encoding/json包来处理JSON的序列化和反序列化。JSON的序列化......
  • 基于Golang协程实现流量统计系统项目开发
    基于Golang协程实现流量统计系统项目开发上一节课我们已经架设好了一个网站。,但是因为我们的网站没有流量。也生成不了大量的日志,靠我们自己点击生成那点日志也不够测试的。所以这次我们就用GO语言批量生成我们想要的日志。好了。我们开始写代码我用的IDE工具是GOLAND,没有为......
  • windows自带工具netsh trace 抓包
     简单实例 管理员模式运行netshtracestartcapture=yesreport=disabled protocol=TCPipv4.address=192.168.0.40tracefile=d:\a.etl  停止抓包netshtracestop  -------------------------------------------------------------其它可选参数 report=e......
  • Golang使用nats
    nats自行安装packagemainimport( "fmt" "github.com/nats-io/nats.go")////nats-server在管理subject的时候是通过’.’进行分割的,server底层是使用treemodule分层管理subject.此处有两个通配符*和>。////*可以匹配以.分割的一切。如:////nc.Subscribe("aa.*......