package encoding import ( "sync" "github.com/VictoriaMetrics/VictoriaMetrics/lib/slicesutil" ) // GetFloat64s returns a slice of float64 values with the given size. // // When the returned slice is no longer needed, it is advised calling PutFloat64s() on it, // so it could be re-used. func GetFloat64s(size int) *Float64s { v := float64sPool.Get() if v == nil { v = &Float64s{} } a := v.(*Float64s) a.A = slicesutil.SetLength(a.A, size) return a } // PutFloat64s returns a to the pool, so it can be re-used via GetFloat64s. // // The a cannot be used after returning to the pull. func PutFloat64s(a *Float64s) { a.A = a.A[:0] float64sPool.Put(a) } var float64sPool sync.Pool // Float64s holds an array of float64 values. type Float64s struct { A []float64 }