benchmarks_test.go 550 B

123456789101112131415161718192021
  1. package benchmarks
  2. import "testing"
  3. func BenchmarkSum10(b *testing.B) { benchmarkSum(b, 10) }
  4. func BenchmarkSum100(b *testing.B) { benchmarkSum(b, 100) }
  5. func BenchmarkSum1000(b *testing.B) { benchmarkSum(b, 1000) }
  6. // 通用辅助函数,避免重复代码
  7. func benchmarkSum(b *testing.B, size int) {
  8. // 提前造好数据,防止每次循环都分配
  9. nums := make([]int, size)
  10. for i := 0; i < size; i++ {
  11. nums[i] = i
  12. }
  13. b.ResetTimer() // 重置计时器,上面初始化不计入
  14. for i := 0; i < b.N; i++ {
  15. _ = Sum(nums...)
  16. }
  17. }