windows ,go powershell 测试并且性能分析

发布时间 2023-06-19 16:28:23作者: ifnk

benchamark 并且性能分析

go test -run none -bench . -benchmem -cpuprofile cpu.prof -memprofile mem.prof; Start-Job { go tool pprof -http=:10000 .\cpu.prof }; Start-Job { go tool pprof -http=:10001 .\mem.prof }

-bench 表示执行哪些基准测试函数,后面可以加需要执行的基准测试函数名称,也可以加 .,表示执行全部的基准测试函数。(其实 -bench 后面可以加正则表达式)
-run 表示执行哪些单元测试和示例测试函数,一般会加none,表示都不执行
-benchmem 表示打印函数执行过程中的内存分配
-cpuprofile 表示将全过程的 CPU 的一些概要数据写到文件 cpuprofile.out 中
memprofile 表示将全过程的内存的一些概要数据写到文件 memprofile.out 中

这个执行后会在当前目录生成 一个 cpu.prof 和 mem.prof ,并且会自动打开浏览器显示cpu 和内存的性能指标用于分析 ,如果 需要查看 泄漏的 goroutine ,可以在xx_test.go 文件 使用
go.uber.org/goleak 包,添加方法

func TestMain(m *testing.M) {
	goleak.VerifyTestMain(m)
}

就可以看你测试的方法有没有 goroutine 泄漏啦

停止掉所有的任务

Get-Job | Stop-Job | Remove-Job