gpt4 book ai didi

VScode中golang基准测试gotest-bench.

转载 作者:我是一只小鸟 更新时间:2023-08-03 22:31:36 33 4
gpt4 key购买 nike

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

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

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

func BenchmarkName(b *testing.B) 。

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

测试代码如下:

                
                   1
                
                
                  package main

                
                
                   2
                
                
                   3
                
                
                  import (

                
                
                   4
                
                
                  "
                
                
                  testing
                
                
                  "
                
                
                   5
                
                
                  "
                
                
                  time
                
                
                  "
                
                
                   6
                
                
                  )

                
                
                   7
                
                 func Benchmark_Log(b *
                
                  testing.B) {

                
                
                   8
                
                
                  for
                
                 i := 
                
                  0
                
                ; i < b.N; i++
                
                   {

                
                
                   9
                
                         b.Log(
                
                  "
                
                
                  hello world
                
                
                  "
                
                
                  )

                
                
                  10
                
                         time.Sleep(
                
                  1
                
                 *
                
                   time.Second)

                
                
                  11
                
                         b.Log(
                
                  "
                
                
                  hello world jkjk
                
                
                  "
                
                
                  )

                
                
                  12
                
                
                      }

                
                
                  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 x  执行 10 次 。

  。

  。

3  VScode 测试进行 golang 基准测试

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

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

  。

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

  。

最后此篇关于VScode中golang基准测试gotest-bench.的文章就讲到这里了,如果你想了解更多关于VScode中golang基准测试gotest-bench.的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com