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
只需要在后边输入top 10即可
下载地址:https://graphviz.gitlab.io/_pages/Download/Download_windows.HTML
配置graphviz环境变量
重启goland,在执行 go tool pprof --web 11压力测试.test.exe fuck.out
3 cpu画像的可视化分析
这里只截取了一部分,跟终端生成出啦的数据是一致的。
然后根据消耗时间的长短来分析自己项目的问题
以上是内存溢出为你收集整理的【GO】一文带你入门go的压力测试全部内容,希望文章能够帮你解决【GO】一文带你入门go的压力测试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)