Regarding this code:

> SetLength(Array,Length(Array)+1);
> Array[High(Array)] := …

as I understood from (http://wiki.freepascal.org/Dynamic_array 
<http://wiki.freepascal.org/Dynamic_array>), SetLength will create a copy of 
the array and free the memory of the shorter array. In this case, a lot of 
memory operations and copy operations are performed thus degrading the 
performances of the code. Then it would be unwise to use such strategy: better 
allocate the size of the array correctly at the beginning of the run, or resize 
the array by block, to decrease the frequency of such operation:

> SetLength(Array,Length(Array)+N);

Can somebody confirm (or invalidate) this?

Ciao,
Gilles Marcou
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to