使用StopWatch或类似工具对代码进行基准测试

huangapple go评论80阅读模式
英文:

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 &lt; 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.

huangapple
  • 本文由 发表于 2012年4月7日 03:34:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/10048366.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定