经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
VScode 中golang 基准测试 go test -bench .
来源:cnblogs  作者:芹菜是一根葱  时间:2023/8/4 9:02:20  对本文有异议

目的:基准测试的主要目的是比较不同实现方式之间的性能差异,找出性能瓶颈。

1 准备以_test.go结尾文件和导入testing

在命名文件时需要让文件必须以_test结尾,在文件中导入testing包。基准测试可以测试一段程序的运行性能及耗费CPU的程度,获得代码内存占用和运行效率的性能数据。Go语言中提供了基准测试框架,使用方法类似于单元测试,使用者无须准备高精度的计时器和各种分析工具,基准测试本身既可以打印出非常标准的测试报告。

func BenchmarkName(b *testing.B)

基准测试以Benchmark为前缀,需要一个*testing.B类型的参数b,基准测试必须要执行b.N次,这样的测试才有对照性,b.N的值是系统根据实际情况去调整的,从而保证测试的稳定性。

测试代码如下:

  1. 1 package main
  2. 2
  3. 3 import (
  4. 4 "testing"
  5. 5 "time"
  6. 6 )
  7. 7 func Benchmark_Log(b *testing.B) {
  8. 8 for i := 0; i < b.N; i++ {
  9. 9 b.Log("hello world")
  10. 10 time.Sleep(1 * time.Second)
  11. 11 b.Log("hello world jkjk")
  12. 12 }
  13. 13 }

 

2 终端输入命令进行golang基准测试

(1) go test -bench . 执行项目中所有基准测试文件

在终端输入命令:go test -bench . 可以看到 执行了1次,即为b.N的值。Benchmark_Log2函数平均每次操作花费了1011875500纳秒,Benchmark_Log函数平均每次操作花费了1003084600纳秒。

 

 

(2) go test -bench . xxx_test.go, 执行指定基准测试文件,如go test -bench . time_test.go go test -bench . time_test.go time2_test.go 

 

 

(3) go test -bench . -benchtime=10s 执行10s

 

(4) go test -bench . -benchtime=10执行10

 

 

3 VScode测试进行golang基准测试

点击VScode视图左侧的测试按钮,点击运行按钮下方的运行测试按钮进行基准测试,或者点击module_test.go文件,基准函数的运行测试按钮。

VScode测试进行golang基准测试的操作与golang单元测试一致,但输出的信息不同。

 

在进行基准测试的过程中,可以点击取消测试运行按钮取消测试。

 

原文链接:https://www.cnblogs.com/sinberya/p/17604131.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号