From 489f4bf0f8664ed0e080a4b54f393d7e8e1297bc Mon Sep 17 00:00:00 2001 From: Rodrigo Arguello Date: Tue, 15 Oct 2024 12:33:01 +0200 Subject: [PATCH] improve benchmarks --- contrib/segmentio/kafka.go.v0/kafka_test.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/contrib/segmentio/kafka.go.v0/kafka_test.go b/contrib/segmentio/kafka.go.v0/kafka_test.go index 12d4c4c721..ab4e7839c9 100644 --- a/contrib/segmentio/kafka.go.v0/kafka_test.go +++ b/contrib/segmentio/kafka.go.v0/kafka_test.go @@ -23,6 +23,7 @@ import ( "gopkg.in/DataDog/dd-trace-go.v1/contrib/internal/namingschematest" "gopkg.in/DataDog/dd-trace-go.v1/contrib/segmentio/kafka.go.v0/internal/tracing" "gopkg.in/DataDog/dd-trace-go.v1/datastreams" + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/mocktracer" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" @@ -446,6 +447,9 @@ func TestNamingSchema(t *testing.T) { namingschematest.NewKafkaTest(genSpans)(t) } +// benchSpan is a package-level variable used to prevent compiler optimisations in the benchmarks below. +var benchSpan ddtrace.Span + func BenchmarkReaderStartSpan(b *testing.B) { ctx := context.Background() kafkaCfg := tracing.KafkaConfig{ @@ -457,11 +461,13 @@ func BenchmarkReaderStartSpan(b *testing.B) { Key: []byte("key1"), Value: []byte("value1"), } + var result ddtrace.Span b.ResetTimer() for n := 0; n < b.N; n++ { - tr.StartConsumeSpan(ctx, wrapMessage(&msg)) + result = tr.StartConsumeSpan(ctx, wrapMessage(&msg)) } + benchSpan = result } func BenchmarkWriterStartSpan(b *testing.B) { @@ -480,9 +486,11 @@ func BenchmarkWriterStartSpan(b *testing.B) { Key: []byte("key1"), Value: []byte("value1"), } + var result ddtrace.Span b.ResetTimer() for n := 0; n < b.N; n++ { - tr.StartProduceSpan(ctx, wrapTracingWriter(kw), wrapMessage(&msg)) + result = tr.StartProduceSpan(ctx, wrapTracingWriter(kw), wrapMessage(&msg)) } + benchSpan = result }