diff --git a/promql/engine.go b/promql/engine.go index 11a7ad22ec..57a1f41bb8 100644 --- a/promql/engine.go +++ b/promql/engine.go @@ -4418,9 +4418,9 @@ func extendFloats(floats []FPoint, mint, maxt int64, smoothed bool) []FPoint { lastSampleIndex-- } - // TODO: Preallocate the length of the new list. - out := make([]FPoint, 0) - // Create the new floats list with the boundary samples and the inner samples. + count := max(lastSampleIndex-firstSampleIndex+1, 0) + out := make([]FPoint, 0, count+2) + out = append(out, FPoint{T: mint, F: left}) out = append(out, floats[firstSampleIndex:lastSampleIndex+1]...) out = append(out, FPoint{T: maxt, F: right})