Set initial capacity for vectors
hassila opened this issue · comments
Joakim Hassila commented
The following small change to codegen removed 1M allocations and improved decoding with ~20%:
let offset_list : Offset? = reader.getOffset(objectOffset, propertyIndex: 0)
let length_list = reader.getVectorLength(offset_list)
if(length_list > 0){
var index = 0
---> _result.list.reserveCapacity(length_list)
while index < length_list {
_result.list.append(FooBar.create(reader, objectOffset: reader.getVectorOffsetElement(offset_list!, index: index)))
index += 1
}
}