// Copyright 2017, OpenCensus Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package stats_test import ( "context" "testing" "go.opencensus.io/stats" _ "go.opencensus.io/stats/view" // enable collection "go.opencensus.io/tag" ) var m = makeMeasure() func BenchmarkRecord0(b *testing.B) { ctx := context.Background() b.ResetTimer() for i := 0; i < b.N; i++ { stats.Record(ctx) } } func BenchmarkRecord1(b *testing.B) { ctx := context.Background() b.ResetTimer() for i := 0; i < b.N; i++ { stats.Record(ctx, m.M(1)) } } func BenchmarkRecord8(b *testing.B) { ctx := context.Background() b.ResetTimer() for i := 0; i < b.N; i++ { stats.Record(ctx, m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1)) } } func BenchmarkRecord8_Parallel(b *testing.B) { ctx := context.Background() b.ResetTimer() b.RunParallel(func(pb *testing.PB) { for pb.Next() { stats.Record(ctx, m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1)) } }) } func BenchmarkRecord8_8Tags(b *testing.B) { ctx := context.Background() key1, _ := tag.NewKey("key1") key2, _ := tag.NewKey("key2") key3, _ := tag.NewKey("key3") key4, _ := tag.NewKey("key4") key5, _ := tag.NewKey("key5") key6, _ := tag.NewKey("key6") key7, _ := tag.NewKey("key7") key8, _ := tag.NewKey("key8") tag.New(ctx, tag.Insert(key1, "value"), tag.Insert(key2, "value"), tag.Insert(key3, "value"), tag.Insert(key4, "value"), tag.Insert(key5, "value"), tag.Insert(key6, "value"), tag.Insert(key7, "value"), tag.Insert(key8, "value"), ) b.ResetTimer() for i := 0; i < b.N; i++ { stats.Record(ctx, m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1), m.M(1)) } } func makeMeasure() *stats.Int64Measure { return stats.Int64("m", "test measure", "") }