如何记录测试时间

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

How to record the time for testing

问题

你可以使用计时器来测试这两个函数的速度。在开始执行函数之前,记录下当前时间,然后执行函数并再次记录下当前时间。通过计算两个时间点之间的差值,你可以得到函数执行所需的时间。比较两个函数的执行时间,可以确定哪个函数更快。

在Python中,你可以使用time模块来实现计时功能。具体步骤如下:

  1. 导入time模块:import time
  2. 在执行函数之前,记录下当前时间:start_time = time.time()
  3. 执行函数
  4. 在函数执行完成后,记录下当前时间:end_time = time.time()
  5. 计算函数执行所需的时间差:execution_time = end_time - start_time
  6. 比较两个函数的执行时间,找出更快的函数。

希望对你有帮助!

英文:

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 &lt; b.N; i++ {
		_ = Func1()
	}
}

func BenchmarkFunc2(b *testing.B) {
	for i := 0; i &lt; 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 &lt; b.N; n++ {
                Function1(10)
        }
}

Repeat for Function2 and check the results with go test -bench=.

huangapple
  • 本文由 发表于 2014年8月10日 16:44:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/25226972.html
匿名

发表评论

匿名网友

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

确定