@@ -84,9 +84,6 @@ func (mc *CCacheMetric) AddRange(prev uint32, itergens []chunk.IterGen) {
84
84
mc .Lock ()
85
85
defer mc .Unlock ()
86
86
87
- // pre-allocate 1 slice, cheaper than allocating one by one
88
- chunks := make ([]CCacheChunk , 0 , len (itergens ))
89
-
90
87
// handle the first one
91
88
itergen := itergens [0 ]
92
89
ts := itergen .Ts
@@ -122,13 +119,12 @@ func (mc *CCacheMetric) AddRange(prev uint32, itergens []chunk.IterGen) {
122
119
prev = 0
123
120
}
124
121
125
- chunks = append ( chunks , CCacheChunk {
122
+ mc . chunks [ ts ] = & CCacheChunk {
126
123
Ts : ts ,
127
124
Prev : prev ,
128
125
Next : itergens [1 ].Ts ,
129
126
Itgen : itergen ,
130
- })
131
- mc .chunks [ts ] = & chunks [len (chunks )- 1 ]
127
+ }
132
128
mc .keys = append (mc .keys , ts )
133
129
} else {
134
130
mc .chunks [ts ].Next = itergens [1 ].Ts
@@ -146,13 +142,12 @@ func (mc *CCacheMetric) AddRange(prev uint32, itergens []chunk.IterGen) {
146
142
}
147
143
148
144
// add chunk, potentially overwriting pre-existing chunk (unlikely)
149
- chunks = append ( chunks , CCacheChunk {
145
+ mc . chunks [ ts ] = & CCacheChunk {
150
146
Ts : ts ,
151
147
Prev : prev ,
152
148
Next : itergens [i + 1 ].Ts ,
153
149
Itgen : itergen ,
154
- })
155
- mc .chunks [ts ] = & chunks [len (chunks )- 1 ]
150
+ }
156
151
157
152
prev = ts
158
153
}
@@ -177,13 +172,12 @@ func (mc *CCacheMetric) AddRange(prev uint32, itergens []chunk.IterGen) {
177
172
}
178
173
}
179
174
180
- chunks = append ( chunks , CCacheChunk {
175
+ mc . chunks [ ts ] = & CCacheChunk {
181
176
Ts : ts ,
182
177
Prev : prev ,
183
178
Next : next ,
184
179
Itgen : itergen ,
185
- })
186
- mc .chunks [ts ] = & chunks [len (chunks )- 1 ]
180
+ }
187
181
mc .keys = append (mc .keys , ts )
188
182
} else {
189
183
mc .chunks [ts ].Prev = prev
0 commit comments