Go语言中*testing.B用于性能基准测试,通过Benchmark函数测量如ns/op等指标;示例显示递归斐波那契耗时774.8ns/op,而迭代版本显著更优;使用b.N控制循环次数,b.ResetTimer()排除初始化影响,并可用-benchmem和-benchtime分析内存与时间性能。

在Go语言中,testing.B 是
testing
*testing.B
基准测试函数与普通测试函数类似,但函数名以
Benchmark
*testing.B
例如,测试一个计算斐波那契数的函数:
func fibonacci(n int) int {b.N
go test
立即学习“go语言免费学习笔记(深入)”;
在项目目录下运行以下命令启动基准测试:
go test -bench=.输出示例:
BenchmarkFibonacci-8 1546789 774.8 ns/op其中:
你也可以限制测试时间或内存分配统计:
go test -bench=.^ -benchtime=3s -benchmem这会将每个基准运行3秒,并显示内存分配情况。
基准测试常用于比较不同实现的性能差异。例如,使用迭代代替递归优化 fibonacci 函数:
func fibonacciIterative(n int) int {添加对应的基准测试:
func BenchmarkFibonacciIterative(b *testing.B) {运行后你会发现迭代版本的
ns/op
若被测函数包含初始化等耗时操作,应使用
b.ResetTimer()
这样可以确保只测量核心逻辑的执行时间。
基本上就这些。合理使用
*testing.B
以上就是Golang使用testing.B测量函数执行效率的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号