英文:
How to record the time for testing
问题
你可以使用计时器来测试这两个函数的速度。在开始执行函数之前,记录下当前时间,然后执行函数并再次记录下当前时间。通过计算两个时间点之间的差值,你可以得到函数执行所需的时间。比较两个函数的执行时间,可以确定哪个函数更快。
在Python中,你可以使用time
模块来实现计时功能。具体步骤如下:
- 导入
time
模块:import time
- 在执行函数之前,记录下当前时间:
start_time = time.time()
- 执行函数
- 在函数执行完成后,记录下当前时间:
end_time = time.time()
- 计算函数执行所需的时间差:
execution_time = end_time - start_time
- 比较两个函数的执行时间,找出更快的函数。
希望对你有帮助!
英文:
I wrote two functions and now I would love to find out, which of them is faster. How can I find it out, which one is faster?
How can I find out by testing, which one is faster? Do go provide a timer for that?
答案1
得分: 7
更好的是,Go语言提供了内置的基准测试和测试功能!
创建一个名为something_test.go的文件(必须包含*_test*部分)。
func BenchmarkFunc1(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = Func1()
}
}
func BenchmarkFunc2(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = Func2()
}
}
然后简单地运行:go test -bench=. -benchmem
它会打印每个函数花费的时间以及内存使用情况和分配情况。
参考:
英文:
Even better, Go provides a built in benchmark and testing functionality!
Create a file named something_test.go (must have the _test part).
func BenchmarkFunc1(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = Func1()
}
}
func BenchmarkFunc2(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = Func2()
}
}
Then simply run: go test -bench=. -benchmem
It will print how long each function took and memory usage / allocations.
Ref:
答案2
得分: 3
你可以为每个函数编写一个基准测试。
例如,可以参考"如何在Go中编写基准测试"。
// 来自 source_test.go
func BenchmarkFunction1(b *testing.B) {
// 运行 Function1 函数 b.N 次
for n := 0; n < b.N; n++ {
Function1(10)
}
}
为 Function2
重复上述步骤,并使用 go test -bench=.
命令检查结果。
英文:
You could write a benchmark for each function.
See for instance "How to write benchmarks in Go"
// from source_test.go
func BenchmarkFunction1(b *testing.B) {
// run the Function1 function b.N times
for n := 0; n < b.N; n++ {
Function1(10)
}
}
Repeat for Function2
and check the results with go test -bench=.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论