121 lines
2.3 KiB
Go
121 lines
2.3 KiB
Go
|
package telegraf
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
// vars for making sure that the compiler doesnt optimize out the benchmarks:
|
||
|
var (
|
||
|
s string
|
||
|
I interface{}
|
||
|
tags map[string]string
|
||
|
fields map[string]interface{}
|
||
|
)
|
||
|
|
||
|
func BenchmarkNewMetric(b *testing.B) {
|
||
|
var mt Metric
|
||
|
for n := 0; n < b.N; n++ {
|
||
|
mt, _ = NewMetric("test_metric",
|
||
|
map[string]string{
|
||
|
"test_tag_1": "tag_value_1",
|
||
|
"test_tag_2": "tag_value_2",
|
||
|
"test_tag_3": "tag_value_3",
|
||
|
},
|
||
|
map[string]interface{}{
|
||
|
"string_field": "string",
|
||
|
"int_field": int64(1000),
|
||
|
"float_field": float64(2.1),
|
||
|
},
|
||
|
time.Now(),
|
||
|
)
|
||
|
}
|
||
|
s = string(mt.String())
|
||
|
}
|
||
|
|
||
|
func BenchmarkNewMetricAndInspect(b *testing.B) {
|
||
|
var mt Metric
|
||
|
for n := 0; n < b.N; n++ {
|
||
|
mt, _ = NewMetric("test_metric",
|
||
|
map[string]string{
|
||
|
"test_tag_1": "tag_value_1",
|
||
|
"test_tag_2": "tag_value_2",
|
||
|
"test_tag_3": "tag_value_3",
|
||
|
},
|
||
|
map[string]interface{}{
|
||
|
"string_field": "string",
|
||
|
"int_field": int64(1000),
|
||
|
"float_field": float64(2.1),
|
||
|
},
|
||
|
time.Now(),
|
||
|
)
|
||
|
for k, v := range mt.Fields() {
|
||
|
s = k
|
||
|
I = v
|
||
|
}
|
||
|
}
|
||
|
s = mt.String()
|
||
|
}
|
||
|
|
||
|
func BenchmarkTags(b *testing.B) {
|
||
|
var mt, _ = NewMetric("test_metric",
|
||
|
map[string]string{
|
||
|
"test_tag_1": "tag_value_1",
|
||
|
"test_tag_2": "tag_value_2",
|
||
|
"test_tag_3": "tag_value_3",
|
||
|
},
|
||
|
map[string]interface{}{
|
||
|
"string_field": "string",
|
||
|
"int_field": int64(1000),
|
||
|
"float_field": float64(2.1),
|
||
|
},
|
||
|
time.Now(),
|
||
|
)
|
||
|
for n := 0; n < b.N; n++ {
|
||
|
tags = mt.Tags()
|
||
|
}
|
||
|
s = fmt.Sprint(tags)
|
||
|
}
|
||
|
|
||
|
func BenchmarkFields(b *testing.B) {
|
||
|
var mt, _ = NewMetric("test_metric",
|
||
|
map[string]string{
|
||
|
"test_tag_1": "tag_value_1",
|
||
|
"test_tag_2": "tag_value_2",
|
||
|
"test_tag_3": "tag_value_3",
|
||
|
},
|
||
|
map[string]interface{}{
|
||
|
"string_field": "string",
|
||
|
"int_field": int64(1000),
|
||
|
"float_field": float64(2.1),
|
||
|
},
|
||
|
time.Now(),
|
||
|
)
|
||
|
for n := 0; n < b.N; n++ {
|
||
|
fields = mt.Fields()
|
||
|
}
|
||
|
s = fmt.Sprint(fields)
|
||
|
}
|
||
|
|
||
|
func BenchmarkSerializeMetric(b *testing.B) {
|
||
|
mt, _ := NewMetric("test_metric",
|
||
|
map[string]string{
|
||
|
"test_tag_1": "tag_value_1",
|
||
|
"test_tag_2": "tag_value_2",
|
||
|
"test_tag_3": "tag_value_3",
|
||
|
},
|
||
|
map[string]interface{}{
|
||
|
"string_field": "string",
|
||
|
"int_field": int64(1000),
|
||
|
"float_field": float64(2.1),
|
||
|
},
|
||
|
time.Now(),
|
||
|
)
|
||
|
var S string
|
||
|
for n := 0; n < b.N; n++ {
|
||
|
S = mt.String()
|
||
|
}
|
||
|
s = S
|
||
|
}
|