Skip to content

Commit

Permalink
Avoid extra allocations
Browse files Browse the repository at this point in the history
  • Loading branch information
dyladan committed Feb 9, 2021
1 parent 9b7b9da commit 711767a
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions processor/batchprocessor/splitmetrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,23 @@ func splitMetrics(size int, toSplit pdata.Metrics) pdata.Metrics {
}
copiedMetrics := 0
result := pdata.NewMetrics()
result.ResourceMetrics().Resize(toSplit.ResourceMetrics().Len())
rms := toSplit.ResourceMetrics()

rmsCount := 0
for i := rms.Len() - 1; i >= 0; i-- {
rmsCount++
rm := rms.At(i)
destRs := pdata.NewResourceMetrics()
destRs := result.ResourceMetrics().At(result.ResourceMetrics().Len() - 1 - i)
rm.Resource().CopyTo(destRs.Resource())
result.ResourceMetrics().Append(destRs)

destRs.InstrumentationLibraryMetrics().Resize(rm.InstrumentationLibraryMetrics().Len())

ilmCount := 0
for j := rm.InstrumentationLibraryMetrics().Len() - 1; j >= 0; j-- {
ilmCount++
instMetrics := rm.InstrumentationLibraryMetrics().At(j)
destInstMetrics := pdata.NewInstrumentationLibraryMetrics()
destRs.InstrumentationLibraryMetrics().Append(destInstMetrics)
destInstMetrics := destRs.InstrumentationLibraryMetrics().At(destRs.InstrumentationLibraryMetrics().Len() - 1 - j)
instMetrics.InstrumentationLibrary().CopyTo(destInstMetrics.InstrumentationLibrary())

if size-copiedMetrics >= instMetrics.Metrics().Len() {
Expand All @@ -57,9 +63,11 @@ func splitMetrics(size int, toSplit pdata.Metrics) pdata.Metrics {
return result
}
}
destRs.InstrumentationLibraryMetrics().Resize(ilmCount)
if rm.InstrumentationLibraryMetrics().Len() == 0 {
rms.Resize(rms.Len() - 1)
}
}
result.ResourceMetrics().Resize(rmsCount)
return result
}

0 comments on commit 711767a

Please sign in to comment.