指定package:go test -bench benchmark-demo 指定子package:go test -bench benchmark-demo/XXX 当前目录下的所有package:go test -bench ./... (斜杠左侧是一个点,右侧是三个点) 再看指定方法的,可以用正则表达式来指定方法名 所有以Fib结尾的方法:go test -bench='Fib$' benchmark-demo 所有以BenchmarkN...
goos:darwingoarch:amd64pkg:go-advanced/10-testcpu:Intel(R)Core(TM)i7-8557UCPU@1.70GHz BenchmarkFib BenchmarkFib-82654645176ns/opPASS 使用IDEA 运行基准测试时,要注意基准测试用例的名字一定要是BenchmarkXxx形式,否则会报错,将函数名改为FibTest,再次执行测试。 基准测试函数的名字为BenchmarkXxx时会自动...
go test benchmark 指定次数和并发 go 并发测试 并发 有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行。 goroutine goroutine是Go并行设计的核心。goroutine说到底其实就是线程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个...
指定package:go test -bench benchmark-demo 指定子package:go test -bench benchmark-demo/XXX 当前目录下的所有package:go test -bench ./...(斜杠左侧是一个点,右侧是三个点) 再看指定方法的,可以用正则表达式来指定方法名 所有以Fib结尾的方法:go test -bench='Fib$' benchmark-demo 所有以BenchmarkNew...
funcBenchmarkFib(b *testing.B){ time.Sleep(time.Second *3)// 模拟耗时准备任务b.ResetTimer()// 重置定时器forn :=0; n < b.N; n++ { fib(30)// run fib(30) b.N times} } go test -bench='Fib$' -benchtime=50x . sort_test.go 测试开始记时⌛️和测试结束计时⌛️ ...
go test-bench='BenchmarkNewSlice$|BenchmarkNewSliceWithCap$'-benchmem. 结果如下,可见未指定容量的切片在保存数据时会触发扩容,会分配更多内存,内存分配次数也会跟多,每次方法执行的耗时也更多,而提前指定了容量的切片,中途不再发生扩容,内存分配量更小,方法执行耗时也更少(对我们的开发还是有指导意义的) ...
go test支持benchmark性能测试,但是你知道这里可能有坑么? 一个常见的坑是编译器内联优化,我们来看一个具体的例子: func add(a int, b int) int { return a + b } 现在我们要对add函数做性能测试,可能会编写如下测试代码: func BenchmarkWrong(b *testing.B) { b.ResetTimer() for i := 0; i <...
在命令行输入go test -bench=. -benchmem Windows 下使⽤ go test 命令⾏时,-bench=.应写为-bench="." 运行结果: $ go test -bench=. -benchmem goos: darwin goarch: amd64 pkg: eighteen/benchmark BenchmarkConcatStringByAdd-8 8982729 130 ns/op 16 B/op 4 allocs/op ...
6 ns/op PASS ok _/C_/Users/admin/Desktop/test 1.319s 其中,BenchmarkContactStr为测试的函数名,函数名后的-12为运行时对应的GOMAXPROCS的值(逻辑CPU数量),34332700表示测试循环的次数,ns/op表示每一个操作耗费多少时间(纳秒) 基准测试框架对一个测试用例的默认测试时间是 1 秒。开始测试时,当以 Benchmark...
go test -bench=GetReport 1. 2. 3. 又或者直接填入测试函数名: go test -bench=BenchmarkAdapter_GetReport 1. 2. 3. 最终显示数据如下: goos: darwin goarch: amd64 pkg: safeuem/report/service/adapter BenchmarkAdapter_GetReport-4 500 2351618 ns/op 20770 B/op 301 allocs/op ...