[fpc-pascal] TFPList.Expand was: Maximum of memory which can be used by single program in 32 bit Windows

OBones obones at free.fr
Fri May 20 14:26:49 CEST 2016


Lukasz Sokol wrote:
> On 20/05/16 09:40, Graeme Geldenhuys wrote:
>> On 2016-05-20 09:36, Graeme Geldenhuys wrote:
>>> I think a “x percentage of capacity” increment is the way to go. eg: 5
>>> or 10%
>> Scrap that idea. In hind sight, % increments is what is causing the problem.
>>
>> Regards,
>>    Graeme
> And actually why not 'just' allocate exactly what is needed on demand ? May be slower but
> even less overhead.
Because Grow is called once for every item added. And if you add 
thousands of items, the cost of allocating 4 more bytes at a time and 
maybe moving the memory all the time is extremely high.
This is why a balance needs to be found between the allocation frequency 
and the memory over usage cost, and also why you should always set 
Capacity to a plausible value before filling the list.






More information about the fpc-pascal mailing list