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

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

3 VScode测试进行golang基准测试

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

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

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

VScode 中golang 基准测试 go test -bench .的更多相关文章

  1. GoStudy——解决vscode中golang插件依赖安装失败问题

    vscode中安装ms-vscode.go插件后可以开启对go语言的支持,ms-vscode.go插件需要依赖一些工具,安装完成后提示 Installing github.com/nsf/gocode ...

  2. 解决vscode中golang插件依赖安装失败问题

    vscode中安装ms-vscode.go插件后可以开启对go语言的支持,ms-vscode.go插件需要依赖一些工具,安装完成后提示 gocode go-outline go-symbols gur ...

  3. 解决 VS Code 中 golang.org 被墙导致的 Go 插件安装失败问题

    微软官方开发的 Go for Visual Studio Code 插件为 Go 语言 提供了丰富的支持.在 VS Code 中首次打开 Go 工作区后,VS Code 会自动检测当前开发环境为 Go ...

  4. vscode调试golang环境搭建及配置

    准备VSCode 在官网下载最新版的VSCode: 安装Golang插件 打开扩展面板 VSCode->查看->扩展 找到Go插件 在搜索框里输入Go, 找到第二行写有 Rich Go l ...

  5. 在VSCode中成功安装Go相关插件问题:tools failed to install.

    一.介绍 目的:本文将主要介绍在windows使用VSCode配置Go语言环境 软件:VSCode 二.安装出现的问题 完整信息如下 Installing tools at D:\GoPath\bin ...

  6. 成功安装vscode中go的相关插件

    让你成功安装vscode中go的相关插件 注意:该演示环境是windows环境,linux和mac环境操作思路一样 vscode中有很多go的相关插件,非常好用如下:gocodegopkgsgo-ou ...

  7. 解决vs code中golang插件依赖安装失败问题

    解决vs code中golang插件依赖安装失败问题 Installing github.com/nsf/gocode SUCCEEDED Installing github.com/uudashr/ ...

  8. go环境搭建及vscode中调试

    1.下载go安装包一般国内用户无法在官网下载,可以自行百度找一些共享的资源墙内下载地址: http://www.golangtc.com/downloadCSDN上资源下载(一般需要积分):http: ...

  9. 在vscode中go编码发生的问题整理

    引言 使用VsCode进行Go程序开发,我们肯定会碰到一些问题,这些问题有些是IDE的配置问题,有些是下载包的版本不一致问题,本文主要针对在开发过程中碰到的问题做一个简单的回顾和整理. 前期准备,必看 ...

  10. 在vscode中使用Git

    用了git最方便的就是比如在公司写了很多代码后回到家打开vscode只需要点击一下pull就能全部同步过来.是不是很方便....毕竟之前我都是拿u盘拷贝回家或者存到云盘再下载下来.. 我这里用的是国内 ...

随机推荐

  1. AspNetCoreRateLimit应用于MVC项目求助

    AspNetCoreRateLimit应用于MVC项目求助 前言 之前发过一篇文章: .NET Core WebApi接口ip限流实践 - 妙妙屋(zy) - 博客园 (cnblogs.com) 然后 ...

  2. 2021-03-30:给定一个整数组成的无序数组arr,值可能正、可能负、可能0。给定一个整数值K,找到arr的所有子数组里,哪个子数组的累加和<=K,并且是长度最大的。返回其长度。

    2021-03-30:给定一个整数组成的无序数组arr,值可能正.可能负.可能0.给定一个整数值K,找到arr的所有子数组里,哪个子数组的累加和<=K,并且是长度最大的.返回其长度. 福大大 答 ...

  3. 2022-02-05:字典序的第K小数字。 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。 注意:1 ≤ k ≤ n ≤ 10**9。 示例 : 输入: n: 13 k: 2

    2022-02-05:字典序的第K小数字. 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字. 注意:1 ≤ k ≤ n ≤ 10**9. 示例 : 输入: n: 13 k: 2 输出 ...

  4. 2021-11-25:给定两个字符串s1和s2,返回在s1中有多少个子串等于s2。来自美团。

    2021-11-25:给定两个字符串s1和s2,返回在s1中有多少个子串等于s2.来自美团. 答案2021-11-25: 改写kmp算法. next数组多求一位. 比如:str2 = aaaa, 那么 ...

  5. Selenium - 浏览器配置(4) - 打开无痕浏览器

    Selenium - 浏览器配置 无痕浏览器 开启谷歌浏览器的无痕浏览模式: from selenium import webdriver # 引入浏览器配置 chrome_options = web ...

  6. Vue跨域详解

    碰到这种问题,其实你的接口已经通了,但是在页面上就是访问不通过. 你可以把API请求地址单独拎出来新开个网站打开看请求是否成功,成功,但是你的项目不通. 有那么几个可能吧: 1.请求头设置错误 hea ...

  7. phpstudy-sqlilabs-less-11

    题目:POST - Error Based - Single quotes- String 基于错误的单引号post型字符变形的注入 看到有个账密输入口第一反应尝试post注入 打开post data ...

  8. 汉字编码新尝试:字理组字编码方案v0.0

    ↑对,这就是正片↑(同步自敝知乎专栏,不定期更新) 高清(确信)版:http://farter.cn/zzdm/latest.png 不用任何教程,试试对着表解码一下: 43 295 817 146 ...

  9. windows下搭建docker容器环境

    下载Docker Desktop https://www.docker.com/ 安装Docker Desktop(软件默认安装c盘,若要安装到其他盘,在安装之前创建软连接再进行安装) 在自定义磁盘中 ...

  10. RWKV – transformer 与 RNN 的强强联合

    在 NLP (Natural Language Processing, 自然语言处理) 领域,ChatGPT 和其他的聊天机器人应用引起了极大的关注.每个社区为构建自己的应用,也都在持续地寻求强大.可 ...