英文:
Benchmarking code with a StopWatch or similar
问题
我正在尝试使用Go语言的"time"包来对我的程序中的一个函数进行基准测试。我在搜索中发现,人们似乎使用time.NanoSeconds()函数,但我认为这个函数已经不再在time包中了。
我需要的是一种简单的方法来启动和停止计时器,并打印出计时器的值。
英文:
I'm trying to use Go package "time" to benchmark a function in my program. Been searching around, and people seem to use time.NanoSeconds() - but I think this function is no longer in the time package?
What I need is an easy way to start and stop a timer, and print out the value.
答案1
得分: 9
使用现有的testing包功能在您的*_test.go文件中:
func BenchmarkMyFunc(b *testing.B) {
for i := 0; i < b.N; i++ {
myBecnhmarkedFunction()
}
}
并调用go test -bench RE
(RE是一个正则表达式,用于选择benches,例如B
表示*B*
),通常在包/工具目录中执行
或者在代码的任何地方显式地使用Benchmark函数。
英文:
Use the existing functionality of the testing package inside your *_test.go:
func BenchmarkMyFunc(b *testing.B) {
for i := 0; i < b.N; i++ {
myBecnhmarkedFunction()
}
}
and invoke go test -bench RE
(RE is a regexp to select the benches, like B
as it means *B*
) typically inside the package/tool directory
Or explicitly from any place in your code - use the Benchmark function.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论