当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


GO B.ReportMetric用法及代码示例


GO语言"testing"包中"B.ReportMetric"类型的用法及代码示例。

用法:

func(b *B) ReportMetric(n float64, unit string)

ReportMetric 将"n unit" 添加到报告的基准测试结果中。如果度量是per-iteration,调用者应该除以b.N,并且按照惯例,单位应该以"/op"结尾。 ReportMetric 覆盖同一单位的任何先前报告的值。 ReportMetric 如果 unit 是空字符串或 unit 包含任何空格,则会出现Panics。如果 unit 是基准框架本身通常报告的单位(例如"allocs/op"),ReportMetric 将覆盖该指标。将 "ns/op" 设置为 0 将抑制该内置指标。

例子:

package main

import (
	"sort"
	"testing"
)

func main() {
	// This reports a custom benchmark metric relevant to a
	// specific algorithm (in this case, sorting).
	testing.Benchmark(func(b *testing.B) {
		var compares int64
		for i := 0; i < b.N; i++ {
			s := []int{5, 4, 3, 2, 1}
			sort.Slice(s, func(i, j int) bool {
				compares++
				return s[i] < s[j]
			})
		}
		// This metric is per-operation, so divide by b.N and
		// report it as a "/op" unit.
		b.ReportMetric(float64(compares)/float64(b.N), "compares/op")
	})
}

相关用法


注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 B.ReportMetric。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。