diff --git a/lib/decimal/decimal_timing_test.go b/lib/decimal/decimal_timing_test.go index 1989e7300e..891941b732 100644 --- a/lib/decimal/decimal_timing_test.go +++ b/lib/decimal/decimal_timing_test.go @@ -8,17 +8,38 @@ import ( ) func BenchmarkAppendDecimalToFloat(b *testing.B) { + b.Run("VarNums", func(b *testing.B) { + benchmarkAppendDecimalToFloat(b, testVA) + }) + b.Run("Zeros", func(b *testing.B) { + benchmarkAppendDecimalToFloat(b, testZeros) + }) + b.Run("Ones", func(b *testing.B) { + benchmarkAppendDecimalToFloat(b, testOnes) + }) +} + +func benchmarkAppendDecimalToFloat(b *testing.B, a []int64) { b.ReportAllocs() - b.SetBytes(int64(len(testVA))) + b.SetBytes(int64(len(a))) b.RunParallel(func(pb *testing.PB) { var fa []float64 for pb.Next() { - fa = AppendDecimalToFloat(fa[:0], testVA, 0) + fa = AppendDecimalToFloat(fa[:0], a, 0) atomic.AddUint64(&Sink, uint64(len(fa))) } }) } +var testZeros = make([]int64, 8*1024) +var testOnes = func() []int64 { + a := make([]int64, 8*1024) + for i := 0; i < len(a); i++ { + a[i] = 1 + } + return a +}() + func BenchmarkAppendFloatToDecimal(b *testing.B) { b.Run("RealFloat", func(b *testing.B) { benchmarkAppendFloatToDecimal(b, testFAReal) @@ -26,8 +47,23 @@ func BenchmarkAppendFloatToDecimal(b *testing.B) { b.Run("Integers", func(b *testing.B) { benchmarkAppendFloatToDecimal(b, testFAInteger) }) + b.Run("Zeros", func(b *testing.B) { + benchmarkAppendFloatToDecimal(b, testFZeros) + }) + b.Run("Ones", func(b *testing.B) { + benchmarkAppendFloatToDecimal(b, testFOnes) + }) } +var testFZeros = make([]float64, 8*1024) +var testFOnes = func() []float64 { + a := make([]float64, 8*1024) + for i := 0; i < len(a); i++ { + a[i] = 1 + } + return a +}() + func benchmarkAppendFloatToDecimal(b *testing.B, fa []float64) { b.ReportAllocs() b.SetBytes(int64(len(fa))) diff --git a/lib/encoding/encoding_timing_test.go b/lib/encoding/encoding_timing_test.go index 23e89ff7e7..46c5b76039 100644 --- a/lib/encoding/encoding_timing_test.go +++ b/lib/encoding/encoding_timing_test.go @@ -32,7 +32,7 @@ func BenchmarkUnmarshalGaugeArray(b *testing.B) { var dst []int64 var err error for pb.Next() { - dst, err = unmarshalInt64Array(dst[:0], benchMarshaledGaugeArray, MarshalTypeZSTDNearestDelta, 0, len(benchGaugeArray)) + dst, err = unmarshalInt64Array(dst[:0], benchMarshaledGaugeArray, MarshalTypeZSTDNearestDelta, benchGaugeArray[0], len(benchGaugeArray)) if err != nil { panic(fmt.Errorf("cannot unmarshal gauge array: %s", err)) } @@ -79,7 +79,7 @@ func BenchmarkUnmarshalDeltaConstArray(b *testing.B) { var dst []int64 var err error for pb.Next() { - dst, err = unmarshalInt64Array(dst[:0], benchMarshaledDeltaConstArray, MarshalTypeDeltaConst, 0, len(benchDeltaConstArray)) + dst, err = unmarshalInt64Array(dst[:0], benchMarshaledDeltaConstArray, MarshalTypeDeltaConst, benchDeltaConstArray[0], len(benchDeltaConstArray)) if err != nil { panic(fmt.Errorf("cannot unmarshal delta const array: %s", err)) } @@ -126,7 +126,7 @@ func BenchmarkUnmarshalConstArray(b *testing.B) { var dst []int64 var err error for pb.Next() { - dst, err = unmarshalInt64Array(dst[:0], benchMarshaledConstArray, MarshalTypeConst, 0, len(benchConstArray)) + dst, err = unmarshalInt64Array(dst[:0], benchMarshaledConstArray, MarshalTypeConst, benchConstArray[0], len(benchConstArray)) if err != nil { panic(fmt.Errorf("cannot unmarshal const array: %s", err)) } @@ -171,7 +171,7 @@ func BenchmarkUnmarshalZeroConstArray(b *testing.B) { var dst []int64 var err error for pb.Next() { - dst, err = unmarshalInt64Array(dst[:0], benchMarshaledZeroConstArray, MarshalTypeConst, 0, len(benchZeroConstArray)) + dst, err = unmarshalInt64Array(dst[:0], benchMarshaledZeroConstArray, MarshalTypeConst, benchZeroConstArray[0], len(benchZeroConstArray)) if err != nil { panic(fmt.Errorf("cannot unmarshal zero const array: %s", err)) } @@ -210,7 +210,7 @@ func BenchmarkUnmarshalInt64Array(b *testing.B) { var dst []int64 var err error for pb.Next() { - dst, err = unmarshalInt64Array(dst[:0], benchMarshaledInt64Array, benchMarshalType, 0, len(benchInt64Array)) + dst, err = unmarshalInt64Array(dst[:0], benchMarshaledInt64Array, benchMarshalType, benchInt64Array[0], len(benchInt64Array)) if err != nil { panic(fmt.Errorf("cannot unmarshal int64 array: %s", err)) }