网站地图    收藏   

主页 > 后端 > Golang >

gotest代码分析讲解

来源:未知    时间:2023-12-11 10:14 作者:小飞侠 阅读:

[导读] 当我们执行gotest时候,返回一组数据表,看不明白什么意思,下面我们分析下这组数据表,以下面脚本为列. GOMAXPROCS=1gotest-bench=NetHTTPServerGet-benchmem-benchtime=10s 这段代码是使用 Go 语言中...

当我们执行gotest时候,返回一组数据表,看不明白什么意思,下面我们分析下这组数据表,以下面脚本为列.

GOMAXPROCS=1 go test -bench=NetHTTPServerGet -benchmem -benchtime=10s

这段代码是使用 Go 语言中的测试框架 testing 和性能测试工具 go test 运行的基准测试(Benchmark)。具体来说,它测试了一个基于 net/http 包的 HTTP 服务器处理 GET 请求的性能。下面是对输出的解释:


BenchmarkNetHTTPServerGet1ReqPerConn               1000000      12052 ns/op     2297 B/op       29 allocs/op

BenchmarkNetHTTPServerGet2ReqPerConn                1000000      12278 ns/op     2327 B/op       24 allocs/op

BenchmarkNetHTTPServerGet10ReqPerConn              2000000       8903 ns/op     2112 B/op       19 allocs/op

BenchmarkNetHTTPServerGet10KReqPerConn              2000000       8451 ns/op     2058 B/op       18 allocs/op

BenchmarkNetHTTPServerGet1ReqPerConn10KClients        500000      26733 ns/op     3229 B/op       29 allocs/op

BenchmarkNetHTTPServerGet2ReqPerConn10KClients      1000000      23351 ns/op     3211 B/op       24 allocs/op

BenchmarkNetHTTPServerGet10ReqPerConn10KClients      1000000      13390 ns/op     2483 B/op       19 allocs/op

BenchmarkNetHTTPServerGet100ReqPerConn10KClients    1000000      13484 ns/op



解释每行输出:


1.BenchmarkNetHTTPServerGet1ReqPerConn: 表示这个基准测试是关于处理每个连接一个请求的性能。



2.1000000: 表示运行了 1000000 次迭代。

3.12052 ns/op: 表示每次迭代花费的平均纳秒数。

4.2297 B/op: 表示每次迭代分配的平均字节数。

5.29 allocs/op: 表示每次迭代的平均分配次数。



6.BenchmarkNetHTTPServerGet2ReqPerConn: 类似地,但每个连接处理两个请求。

7.BenchmarkNetHTTPServerGet10ReqPerConn: 类似地,但每个连接处理十个请求。

8.BenchmarkNetHTTPServerGet10KReqPerConn: 类似地,但每个连接处理一万个请求。

9.BenchmarkNetHTTPServerGet1ReqPerConn10KClients: 类似于第一个,但同时模拟了 1 万个客户端。

10.BenchmarkNetHTTPServerGet2ReqPerConn10KClients: 类似于第二个,但同时模拟了 1 万个客户端。

11.BenchmarkNetHTTPServerGet10ReqPerConn10KClients: 类似于第三个,但同时模拟了 1 万个客户端。

12.BenchmarkNetHTTPServerGet100ReqPerConn10KClients: 类似于第四个,但同时模拟了 1 万个客户端。


这些输出提供了有关服务器处理不同负载情况下性能的信息,例如每个连接处理的请求数、每次迭代的平均时间和分配情况等。


自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论