美文网首页
go语言基准测试

go语言基准测试

作者: 黎涛note | 来源:发表于2021-04-16 10:24 被阅读0次

基准测试就是在一定的工作负载之下检测程序性能的一种方法。基准测试的基本格式如下:

func BenchmarkName(b *testing.B){
    // ...
} 

测试函数

package split

import "strings"

func Split(s, seq string) (result []string) {
    i := strings.Index(s, seq)
    for i>-1 {
        result = append(result, s[:i])
        s = s[i+len(seq):]
        //s = s[i+1:]
        i = strings.Index(s, seq)
    }
    result = append(result, s)
    return result
}

func SplitPlus(s,seq string) (result []string){
    //分配一个容量大于两者最大容量+1
    //使用make函数提前分配内存的改动,减少了2/3的内存分配次数,并且减少了一半的内存分配
    result = make([]string, 0, strings.Count(s, seq)+1)
    i := strings.Index(s, seq)
    for i>-1 {
        result = append(result, s[:i])
        s = s[i+len(seq):]
        i = strings.Index(s, seq)
    }
    result = append(result, s)
    return result
}

测试bench

package split

import (
    "reflect"
    "testing"
)

func BenchmarkSplit(b *testing.B) {
    for i:=0;i<b.N;i++ {
        Split("a:b:c",":")
    }
}

func BenchmarkSplitPlus(b *testing.B) {
    for i := 0; i < b.N; i++ {
        SplitPlus("a:b:c",":")
    }
}

测试Split函数

go test -bench=Split
image.png

测试Split函数内存消耗和分配情况

go test -bench=Split -benchmem
image.png

测试SplitPlus函数

go test -bench=SplitPlus
image.png

测试SplitPlus函数内存消耗和分配情况

go test -bench=SplitPlus -benchmem
image.png

相关文章

  • go语言测试框架

    go语言内置的测试框架能够完成基本的功能测试,基准测试,和样本测试。 测试框架 go语言测试单元以包为单位组织,包...

  • go 基准测试

    基准测试主要用于评估代码的性能,Go 语言测试框架可以让我们很容易地进行基准测试,同样需要遵循四点规则: 基准测试...

  • go语言基准测试

    基准测试就是在一定的工作负载之下检测程序性能的一种方法。基准测试的基本格式如下: 测试函数 测试bench 测试S...

  • Go语言之基准测试

    在Go语言中,提供了测试函数性能(CPU和Memory)的测试方法,基准测试。 基准测试主要用来测试CPU和内存的...

  • go 基准测试

    在 Go 中编写[基准测试] 是该语言的另一个一级特性,它与编写测试非常相似 你会看到上面的代码和写测试差不多。...

  • Go 基准测试

    什么是基准测试 基准测试,是一种测试代码性能的方法,比如你有多种不同的方案,都可以解决问题,那么到底是那种方案性能...

  • 11 Go测试

    一、测试基础概述 Go语言内建一套基于表格驱动测试的机制,只需编写少量代码,就可对特定功能进行单元测试和基准测试(...

  • 【实践】Golang的单元测试入门go test

    go test命令,相信大家都不陌生,常见的情况会使用这个命令做单测试、基准测试和http测试。go test还是...

  • golang基准测试Benchmark和Jmeter压测实践

    golang的性能测试Benchmark go test 自带有三种测试: 功能测试(单元测试) 基准测试 (性能...

  • Go 语言基础——go语言如何优雅的进行测试

    我们可以为Go程序编写三类测试,即:功能测试(test)、基准测试(benchmark),也称性能测试(examp...

网友评论

      本文标题:go语言基准测试

      本文链接:https://www.haomeiwen.com/subject/mcodlltx.html