【GO】一文带你入门go的压力测试

【GO】一文带你入门go的压力测试,第1张

概述压力测试1. 压力测试json文件的读写1-1项目目录1-2准备素材JsonUtil.go代码1-3准备JsonUtil_test.go代码1-4整包开始测试1-5测试结果1-6命令行测试 go test -v -bench .2. 压力测试生成cpu画像2-1使用终端生成性能分析文件go test -v -bench . -cpuprofile=fuck.out2-2在终端查看性能分析文件2-3...

压力测试 1. 压力测试json文件的读写1-1项目目录1-2准备素材JsonUtil.go代码1-3准备JsonUtil_test.go代码1-4整包开始测试1-5测试结果1-6命令行测试 go test -v -bench .2. 压力测试生成cpu画像2-1使用终端生成性能分析文件go test -v -bench . -cpuprofile=fuck.out2-2在终端查看性能分析文件2-3 查看最耗时间的前10个用例2-4安装cpu画像的图形工具3 cpu画像的可视化分析4 博主微信欢迎交流

1. 压力测试Json文件的读写 1-1项目目录

1-2准备素材JsonUtil.go代码
package mainimport (	"enCoding/Json"	"os")func SaveHuman(human *Human, filename string) (bool, error) {	// 打开文件	file, _ := os.Openfile(filename, os.O_CREATE|os.O_Trunc|os.O_WRONLY, 0666)	// 挂起文件最后执行关闭	defer file.Close()	// 创建解码器	encoder := Json.NewEncoder(file)	err := encoder.Encode(human)	return err == nil, err}func LoadHuman(filename string, human *Human) error {	file, os.O_RDONLY, 0666)	defer file.Close()	decoder := Json.NewDecoder(file)	err := decoder.Decode(human)	return err}
1-3准备JsonUtil_test.go代码
package mainimport "testing"func BenchmarkSaveHuman(b *testing.B) {	b.Log("测试开始")	// 测试开销	b.ReportAllocs()	human := &Human{		name: "咔咔",		Age:  24,	}	for i := 0; i < b.N; i++ {		SaveHuman(human, "C:/Users/administrator/Desktop/go/11压力测试/kaka.Json")	}}func BenchmarkLoadHuman(b *testing.B) {	b.Log("测试开始")	// 测试开销	b.ReportAllocs()	hPrt := new(Human)	for i := 0; i < b.N; i++ {		LoadHuman("C:/Users/administrator/Desktop/go/11压力测试/kaka.Json", hPrt)	}}
1-4整包开始测试

1-5测试结果 第一组数据未执行的次数第二组数据是每次需要的时间第三组是每次需要的内存第四组是每次需要分配的内存快

1-6命令行测试 go test -v -bench .

2. 压力测试生成cpu画像 2-1使用终端生成性能分析文件go test -v -bench . -cpuprofile=fuck.out


执行完成之后会在目录下生成俩个文件

2-2在终端查看性能分析文件
go tool pprof 11压力测试.test.exe fuck.out

Duration: 3.13s,Total samples = 3.06s (97.92%)
这里就解释一下这行的意思,意思是做一轮压力测试需要3.13s。其中用例花掉3.06s

2-3 查看最耗时间的前10个用例

只需要在后边输入top 10即可

Showing nodes accounting for 2.83s,92.48% of 3.06s total(显示节点占2.83s,占3.06s的92.48%)Dropped 47 nodes (cum <= 0.02s)(丢弃47个节点(cum<=0.02s))Showing top 10 nodes out of 76(显示76个节点中的前10个节点)2-4安装cpu画像的图形工具

下载地址:https://graphviz.gitlab.io/_pages/Download/Download_windows.HTML


配置graphviz环境变量


重启goland,在执行 go tool pprof --web 11压力测试.test.exe fuck.out

3 cpu画像的可视化分析

这里只截取了一部分,跟终端生成出啦的数据是一致的。
然后根据消耗时间的长短来分析自己项目的问题

4 博主微信欢迎交流

总结

以上是内存溢出为你收集整理的【GO】一文带你入门go的压力测试全部内容,希望文章能够帮你解决【GO】一文带你入门go的压力测试所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1252296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存